llvm-mirror/lib/IR
Derek Schuff a5f20f3678 Fix DeleteDeadVarargs not to crash on functions referenced by BlockAddresses
This pass was assuming that if hasAddressTaken() returns false for a
function, the function's only uses are call sites.  That's not true
because there can be references by BlockAddresses too.

Fix the pass to handle this case.  Fix
BlockAddress::replaceUsesOfWithOnConstant() to allow a function's type
to be changed by RAUW'ing the function with a bitcast of the recreated
function.

Patch by Mark Seaborn.

llvm-svn: 183933
2013-06-13 19:51:17 +00:00
..
AsmWriter.cpp Re-implement DebugIR in a way that does not subclass AssemblyWriter: 2013-05-23 22:34:33 +00:00
AsmWriter.h Re-implement DebugIR in a way that does not subclass AssemblyWriter: 2013-05-23 22:34:33 +00:00
AttributeImpl.h Now that the underlying issue is fixed, revert r180750 and r180722. 2013-05-01 13:07:03 +00:00
Attributes.cpp Add a new function attribute 'cold' to functions. 2013-05-24 12:26:52 +00:00
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt Move TargetTransformInfo to live under the Analysis library. This no 2013-01-07 03:08:10 +00:00
ConstantFold.cpp IR: Don't constant fold GEP bitcasts between different address spaces 2013-02-27 02:26:42 +00:00
ConstantFold.h
Constants.cpp Fix DeleteDeadVarargs not to crash on functions referenced by BlockAddresses 2013-06-13 19:51:17 +00:00
ConstantsContext.h Add ArrayRef constructor from None, and do the cleanups that this constructor enables 2013-05-05 00:40:33 +00:00
Core.cpp Expose the RTDyldMemoryManager through the C API. This allows clients of 2013-05-22 02:46:43 +00:00
DataLayout.cpp Remove duplicated comment 2013-05-18 00:24:09 +00:00
DebugInfo.cpp Move getRealLinkageName to a common place and remove all the duplicates of it. 2013-06-01 17:51:14 +00:00
DebugLoc.cpp
DIBuilder.cpp DIBuilder: No functionality change. 2013-06-07 18:35:53 +00:00
Dominators.cpp
Function.cpp Add CodeGen support for functions that always return arguments via a new parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). 2013-04-20 05:14:40 +00:00
GCOV.cpp
Globals.cpp Added instance variable/initializers/getter/setters for new keyword externally initialized to GlobalVariable. No *TRUE* functionality change. 2013-02-03 21:54:38 +00:00
GVMaterializer.cpp
InlineAsm.cpp Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. 2013-02-12 21:21:59 +00:00
Instruction.cpp Fix a bug in mayHaveSideEffects. Functions that do not return are now considered as instructions with side effects. 2013-02-19 20:02:09 +00:00
Instructions.cpp Revert r177675. This is language-specific and shouldn't be in the API. 2013-03-22 18:46:32 +00:00
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.cpp Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata. 2013-03-06 17:48:48 +00:00
LLVMContextImpl.cpp Revert "Rename LLVMContext diagnostic handler types and functions." 2013-02-11 05:37:07 +00:00
LLVMContextImpl.h Cache the result of Function::getIntrinsicID() in a DenseMap attached to the LLVMContext. 2013-03-01 18:48:54 +00:00
Makefile Actually update the CMake and Makefile builds correctly, and update the 2013-01-02 12:09:16 +00:00
Metadata.cpp Struct-path aware TBAA: update getMostGenericTBAA 2013-04-22 23:00:44 +00:00
Module.cpp Remove dead code. 2013-05-15 22:41:28 +00:00
Pass.cpp Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
PassManager.cpp Add ArrayRef constructor from None, and do the cleanups that this constructor enables 2013-05-05 00:40:33 +00:00
PassRegistry.cpp
PrintModulePass.cpp Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Add ArrayRef constructor from None, and do the cleanups that this constructor enables 2013-05-05 00:40:33 +00:00
TypeFinder.cpp Move TypeFinder.h into the IR tree, it clearly belongs with the IR library. 2013-01-07 15:43:51 +00:00
Use.cpp Fix Casting 2013-01-14 21:04:37 +00:00
User.cpp
Value.cpp Speed up Value::isUsedInBasicBlock() for long use lists. 2013-05-14 23:45:56 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Require members of llvm.used to be named. 2013-06-11 13:18:13 +00:00