hanchenye-llvm-project/llvm/lib/Transforms/InstCombine
Owen Anderson 6c18d1aac0 Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which
must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
the pass's dependencies.

Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.

I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
registration/creation, please send the testcase to me directly.

llvm-svn: 116820
2010-10-19 17:21:58 +00:00
..
CMakeLists.txt Removed a bunch of unnecessary target_link_libraries. 2010-09-28 22:39:14 +00:00
InstCombine.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
InstCombineAddSub.cpp Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul, 2010-03-02 01:11:08 +00:00
InstCombineAndOrXor.cpp Re-apply r113679, which was reverted in r113720, which added a paid of new instcombine transforms 2010-09-13 17:59:27 +00:00
InstCombineCalls.cpp fix PR8267 - Instcombine shouldn't optimizer away volatile memcpy's. 2010-10-01 05:51:02 +00:00
InstCombineCasts.cpp Fix a serious performance regression introduced by r108687 on linux: 2010-09-07 20:01:38 +00:00
InstCombineCompares.cpp PR7750: !CExpr->isNullValue() only properly computes whether CExpr is nonnull 2010-07-29 18:03:33 +00:00
InstCombineLoadStoreAlloca.cpp Remove r111665, which implemented store-narrowing in InstCombine. Chris discovered a miscompilation in it, and it's not easily 2010-08-31 04:41:06 +00:00
InstCombineMulDivRem.cpp Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul, 2010-03-02 01:11:08 +00:00
InstCombinePHI.cpp cache result of operator* 2010-07-12 14:15:58 +00:00
InstCombineSelect.cpp Remove the rest of my instcombine changes. Back to the drawing board on this one. 2010-07-16 16:39:00 +00:00
InstCombineShifts.cpp optimize bitcasts from large integers to vector into vector 2010-08-28 01:20:38 +00:00
InstCombineSimplifyDemanded.cpp use ArgOperand API 2010-06-28 16:45:00 +00:00
InstCombineVectorOps.cpp Temporarily revert r110987 as it's causing some miscompares in 2010-08-17 22:55:27 +00:00
InstCombineWorklist.h I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it 2010-05-11 20:16:09 +00:00
InstructionCombining.cpp Now with fewer extraneous semicolons! 2010-10-07 22:25:06 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00