hanchenye-llvm-project/llvm/lib/VMCore
Dan Gohman 0c2477c26b Include optional subclass flags, such as inbounds, nsw, etc., in the
Constant uniquing tables. This allows distinct ConstantExpr objects
with the same operation and different flags.

Even though a ConstantExpr "a + b" is either always overflowing or
never overflowing (due to being a ConstantExpr), it's still necessary
to be able to represent it both with and without overflow flags at
the same time within the IR, because the safety of the flag may
depend on the context of the use. If the constant really does overflow,
it wouldn't ever be safe to use with the flag set, however the use
may be in code that is never actually executed.

This also makes it possible to merge all the flags tests into a single test.

llvm-svn: 80998
2009-09-04 12:08:11 +00:00
..
AsmWriter.cpp back out my recent commit (r80858), it seems to break self-hosting buildbot's stage 2 configure 2009-09-03 02:02:59 +00:00
Attributes.cpp Add an 'inline hint' attribute to represent source 2009-08-26 01:08:21 +00:00
AutoUpgrade.cpp Reapply 79977. 2009-08-28 23:24:31 +00:00
BasicBlock.cpp Push LLVMContexts through the IntegerType APIs. 2009-08-13 21:58:54 +00:00
CMakeLists.txt Update CMakeLists. 2009-08-04 23:02:53 +00:00
ConstantFold.cpp Revert 80959. It isn't sufficient to solve the full problem. And it 2009-09-03 23:34:49 +00:00
ConstantFold.h Make LLVMContext and LLVMContextImpl classes instead of structs. 2009-08-11 17:45:13 +00:00
Constants.cpp Include optional subclass flags, such as inbounds, nsw, etc., in the 2009-09-04 12:08:11 +00:00
ConstantsContext.h Include optional subclass flags, such as inbounds, nsw, etc., in the 2009-09-04 12:08:11 +00:00
Core.cpp Revert 80959. It isn't sufficient to solve the full problem. And it 2009-09-03 23:34:49 +00:00
Dominators.cpp Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
Function.cpp Push LLVMContexts through the IntegerType APIs. 2009-08-13 21:58:54 +00:00
Globals.cpp Move types back to the 2.5 API. 2009-07-29 22:17:13 +00:00
InlineAsm.cpp Push LLVMContexts through the IntegerType APIs. 2009-08-13 21:58:54 +00:00
Instruction.cpp This should use isIndenticalToWhenDefined. 2009-08-25 22:24:20 +00:00
Instructions.cpp Include optional subclass flags, such as inbounds, nsw, etc., in the 2009-09-04 12:08:11 +00:00
IntrinsicInst.cpp Fix DbgStopPointInst->getFileName/getDirectory, broken by the MDNodification in 2009-09-02 11:13:56 +00:00
LLVMContext.cpp Use WeakVH to hold dead mdnodes. Check use_empty() before deleting a node. 2009-09-03 17:03:47 +00:00
LLVMContextImpl.h Now Bitcode reader bug is fixed. Reapply 80839. 2009-09-03 01:39:20 +00:00
LeakDetector.cpp Kill off more cerr/cout uses and prune includes a bit. 2009-08-23 11:37:21 +00:00
LeaksContext.h switch from std::ostream to raw ostream, fix file header. 2009-08-23 03:56:06 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
Mangler.cpp Add prefix only if it is needed. 2009-08-17 23:17:17 +00:00
Metadata.cpp Now Bitcode reader bug is fixed. Reapply 80839. 2009-09-03 01:39:20 +00:00
Module.cpp Push LLVMContexts through the IntegerType APIs. 2009-08-13 21:58:54 +00:00
ModuleProvider.cpp
Pass.cpp Remove some unused fields. 2009-08-29 23:34:14 +00:00
PassManager.cpp Kill off more cerr/cout uses and prune includes a bit. 2009-08-23 11:37:21 +00:00
PrintModulePass.cpp It's not necessary for PrintModulePass to flush the output streams 2009-04-20 16:26:25 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Opaque types didn't work if llvm_is_multithreaded(). 2009-09-02 12:23:05 +00:00
TypeSymbolTable.cpp Kill off more cerr/cout uses and prune includes a bit. 2009-08-23 11:37:21 +00:00
TypesContext.h Free the constants that have no uses in ~LLVMContext. 2009-08-31 16:14:59 +00:00
Use.cpp Rearrange operands of the BranchInst, to be able to 2009-03-12 18:34:49 +00:00
Value.cpp Teach getUnderlyingObject and skipPointerCasts about GlobalAliases. 2009-08-27 17:55:13 +00:00
ValueSymbolTable.cpp remove some DOUTs 2009-08-23 04:44:11 +00:00
ValueTypes.cpp Reapply 79977. 2009-08-28 23:24:31 +00:00
Verifier.cpp back out my recent commit (r80858), it seems to break self-hosting buildbot's stage 2 configure 2009-09-03 02:02:59 +00:00