llvm-6502/lib/IR
Meador Inge 8df7c39976 IR: Don't constant fold GEP bitcasts between different address spaces
PR15262 reported a bug where the following instruction:

  i8 getelementptr inbounds i8* bitcast ([4 x i8] addrspace(12)* @buf to i8*),
                                i32 2

was getting folded into:

  addrspace(12)* getelementptr inbounds ([4 x i8] addrspace(12)* @buf, i32 0,
                                        i32 2)

This caused instcombine to crash because the original instruction and
the folded instruction have different types.  The issue was fixed by
disallowing bitcasts between different address spaces to be folded away.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176156 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-27 02:26:42 +00:00
..
AsmWriter.cpp Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
AttributeImpl.h Add some accessor and query methods for retrieving Attribute objects and such. 2013-02-13 08:42:21 +00:00
Attributes.cpp Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt
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
ConstantsContext.h
Core.cpp Add multithreading functions and shutdown to the C API. Patch by Moritz 2013-02-17 16:35:51 +00:00
DataLayout.cpp
DebugInfo.cpp
DebugLoc.cpp
DIBuilder.cpp DIBuilder: support structs with vtable pointers in the same way as classes 2013-02-25 01:07:18 +00:00
Dominators.cpp
Function.cpp Don't assert on empty attributes. 2013-02-21 19:46:51 +00:00
GCOV.cpp
Globals.cpp
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
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt
LLVMContext.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
LLVMContextImpl.cpp
LLVMContextImpl.h
Makefile
Metadata.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Module.cpp
Pass.cpp
PassManager.cpp Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. 2013-02-26 01:31:59 +00:00
PassRegistry.cpp
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
Type.cpp
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00