llvm-6502/lib/Transforms/Scalar
Chris Lattner 7e54a01ddb Speed up the tail duplication pass on the testcase below from 68.2s to 1.23s:
#define CL0(a) case a: f(); goto c;
 #define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \
 CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9)
 #define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \
 CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9)
 #define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \
 CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9)
 #define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \
 CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9)

 void f();

 void a() {
     int b;
  c: switch (b) {
         CL4(1)
     }
 }

This comes from GCC PR 15524


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17390 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 07:05:07 +00:00
..
ADCE.cpp Getting ADCE to interact well with unreachable instructions seems like a nontrivial 2004-10-17 23:45:06 +00:00
BasicBlockPlacement.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00
ConstantProp.cpp Prototype these functions more accurately 2004-09-20 04:43:15 +00:00
CorrelatedExprs.cpp Prototype these functions more accurately 2004-09-20 04:43:15 +00:00
DCE.cpp Prototype these functions more accurately 2004-09-20 04:43:15 +00:00
DeadStoreElimination.cpp Prototype these functions more accurately 2004-09-20 04:43:15 +00:00
DecomposeMultiDimRefs.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00
GCSE.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00
IndVarSimplify.cpp Convert 'struct' to 'class' in various places to adhere to the coding standards 2004-10-27 16:14:51 +00:00
InstructionCombining.cpp Hrm, this code was severely botched. As it turns out, this patch: 2004-10-27 05:57:15 +00:00
LICM.cpp Fix a bug in the previous checkin that broke 255.vortex 2004-09-15 02:34:40 +00:00
LoopStrengthReduce.cpp Initial implementation of the strength reduction for GEP instructions in 2004-10-18 21:08:22 +00:00
LoopUnroll.cpp Correction to allow compilation with Visual C++. 2004-10-18 14:38:48 +00:00
LoopUnswitch.cpp Fixes to make LLVM compile with vc7.1. 2004-09-03 18:19:51 +00:00
LowerConstantExprs.cpp Fix #includes of i*.h => Instructions.h as per PR403. 2004-07-29 17:05:13 +00:00
LowerGC.cpp Initialize with the correct constant type 2004-10-27 03:55:24 +00:00
LowerPacked.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
PRE.cpp Fix compatibility with MSVC, patch by Morten Ofstad 2004-10-25 18:45:16 +00:00
Reassociate.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00
ScalarReplAggregates.cpp Prototype these functions more accurately 2004-09-20 04:43:15 +00:00
SCCP.cpp Convert 'struct' to 'class' in various places to adhere to the coding standards 2004-10-27 16:14:51 +00:00
SimplifyCFG.cpp Hrm, some people complain when the compiler cheerfully tells them what it's 2004-10-19 06:33:16 +00:00
SymbolStripping.cpp Prototype these functions more accurately 2004-09-20 04:43:15 +00:00
TailDuplication.cpp Speed up the tail duplication pass on the testcase below from 68.2s to 1.23s: 2004-11-01 07:05:07 +00:00
TailRecursionElimination.cpp Changes For Bug 352 2004-09-01 22:55:40 +00:00