ldc/ir
Martin 642d755e99 Decorate thunk target calls as tail-calls (=> jumps)
I noticed that the C++ thunks would adjust the `this` pointer and then
jump directly to the actual target function.
The D thunks (on Linux, verified by disassembling) on the other hand
performed a regular call + return. Requesting tail-calls here leads to
direct jumps for D thunks as well, improving performance when calling
virtual functions via interfaces.
2016-09-27 01:34:05 +02:00
..
iraggr.cpp Add experimental -hash-threshold option to hash very long symbol names. 2016-05-24 11:39:08 +02:00
iraggr.h fix vtbl generation for interfaces (bad caching caused wrong thunks to be used) 2016-04-18 08:22:31 +02:00
irclass.cpp Decorate thunk target calls as tail-calls (=> jumps) 2016-09-27 01:34:05 +02:00
irdsymbol.cpp Revert "Revert "Merge branch 'ltsmaster'"" 2016-03-03 21:12:53 +01:00
irdsymbol.h Revert "Revert "Merge branch 'ltsmaster'"" 2016-03-03 21:12:53 +01:00
irforw.h driver/gen/ir: clang-format the world 2015-11-02 00:28:01 +02:00
irfunction.cpp Propagate "nothrow" to LLVM IR (#1202) 2016-08-06 00:10:19 +02:00
irfunction.h gen/ir: Move function body codegen state into separate class 2016-08-03 21:07:18 +01:00
irfuncty.cpp irfuncty: Use parens around macro argument [nfc] 2016-09-03 14:38:10 +01:00
irfuncty.h Optimize ABIRewrite system for lvalues 2016-05-28 21:03:56 +02:00
irmodule.cpp ir: Remvoe unused IrModule constructor argument [nfc] 2016-09-02 23:30:37 +01:00
irmodule.h ir: Remvoe unused IrModule constructor argument [nfc] 2016-09-02 23:30:37 +01:00
irtype.cpp create our own global context, it's been removed from LLVM 2016-04-16 10:02:13 +02:00
irtype.h Do not construct Ir-Types twice for the same type. 2016-02-01 21:52:15 +01:00
irtypeaggr.cpp dmd2 --> ddmd. Merge (almost all of) our changes to dmd source into the new D source of dmd 2.069.2. 2016-01-28 19:03:58 +01:00
irtypeaggr.h gen/ir: clang-tidy the world 2015-11-02 11:30:40 +02:00
irtypeclass.cpp Run functionSemantic() instead of full semantic3() to infer return type 2016-08-19 22:57:04 +02:00
irtypeclass.h fix issue #1473: ICE when implementing extern(C++) interfaces 2016-05-08 22:11:55 +02:00
irtypefunction.cpp Do not construct Ir-Types twice for the same type. 2016-02-01 21:52:15 +01:00
irtypefunction.h gen/ir: clang-tidy the world 2015-11-02 11:30:40 +02:00
irtypestruct.cpp gen/ir: clang-tidy the world 2015-11-02 11:30:40 +02:00
irtypestruct.h gen/ir: clang-tidy the world 2015-11-02 11:30:40 +02:00
irvar.cpp dmd2 --> ddmd. Merge (almost all of) our changes to dmd source into the new D source of dmd 2.069.2. 2016-01-28 19:03:58 +01:00
irvar.h Try to boil down special cases in nested.cpp 2016-05-28 03:03:56 +02:00