llvm/lib/VMCore
Dan Gohman 859fff476d 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80998 91177308-0d34-0410-b5e6-96231b3b80d8
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
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
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
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 Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
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 Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.cpp Opaque types didn't work if llvm_is_multithreaded(). 2009-09-02 12:23:05 +00:00
TypesContext.h Free the constants that have no uses in ~LLVMContext. 2009-08-31 16:14:59 +00:00
TypeSymbolTable.cpp Kill off more cerr/cout uses and prune includes a bit. 2009-08-23 11:37:21 +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