llvm-6502/lib/Transforms/IPO
Nick Lewycky 287de607dc Add an "are types equivalent" operation that ignores the types that a pointer
points to while analyzing all other fields.

Use FoldingSetNodeID to produce a good hash. This dramatically decreases run
times.

Emit thunks. This means that it can look at all functions regardless of what
the linkage is or if the address is taken, but unfortunately some small
functions can be even shorter than the thunk because our backend doesn't yet
realize it can just turn these into jumps. This means that this pass will
pessimize code on average.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12 08:04:51 +00:00
..
ArgumentPromotion.cpp Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
CMakeLists.txt Rename AddReadAttrs to FunctionAttrs, and teach it how 2008-12-31 16:14:43 +00:00
ConstantMerge.cpp Add the private linkage. 2009-01-15 20:18:42 +00:00
DeadArgumentElimination.cpp Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
DeadTypeElimination.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
ExtractGV.cpp Add the private linkage. 2009-01-15 20:18:42 +00:00
FunctionAttrs.cpp Fix PR3754: don't mark functions that wrap MallocInst with 2009-05-06 08:42:00 +00:00
GlobalDCE.cpp Remove an unused function SafeToDestroyConstant(). Rename an almost 2009-06-09 21:37:11 +00:00
GlobalOpt.cpp Implement and use new method Function::hasAddressTaken(). 2009-06-10 08:41:11 +00:00
IndMemRemoval.cpp Introduce new linkage types linkonce_odr, weak_odr, common_odr 2009-03-07 15:45:40 +00:00
InlineAlways.cpp Adjustments to last patch based on review. 2009-01-09 01:30:11 +00:00
Inliner.cpp available_externall linkage is not local, this was confusing the codegenerator, 2009-05-23 14:06:57 +00:00
InlineSimple.cpp Adjustments to last patch based on review. 2009-01-09 01:30:11 +00:00
Internalize.cpp Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
IPConstantPropagation.cpp Use cast<> instead of dyn_cast<> for things that are known to be 2009-06-06 17:49:35 +00:00
IPO.cpp add a bunch more passes to the C bindings (PR3734), patch by 2009-03-06 16:52:18 +00:00
LoopExtractor.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LowerSetJmp.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
MergeFunctions.cpp Add an "are types equivalent" operation that ignores the types that a pointer 2009-06-12 08:04:51 +00:00
PartialSpecialization.cpp Keep calling-convention and tail-call bit when creating new invoke or call. 2009-03-08 19:02:17 +00:00
PruneEH.cpp Clear the cached cost when removing a function in 2009-03-19 18:03:56 +00:00
RaiseAllocations.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
StripDeadPrototypes.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
StripSymbols.cpp The second argument to RecursivelyDeleteTriviallyDeadInstructions has 2009-05-02 20:22:10 +00:00
StructRetPromotion.cpp introduce a useful abstraction to find out if a Use is in the call position of an instruction 2009-01-22 21:35:57 +00:00