aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Operator.h
Commit message (Collapse)AuthorAgeFilesLines
* Clarify that OverflowingBinaryOperator is not used for SDiv, even thoughDan Gohman2009-07-201-1/+2
| | | | | | | SDiv is a binary operation that can overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76464 91177308-0d34-0410-b5e6-96231b3b80d8
* Drop UDivOperator and introduce SDivOperator. Thanks to ChrisDan Gohman2009-07-201-5/+5
| | | | | | | for noticing this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76440 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert the addition of hasNoPointerOverflow to GEPOperator.Dan Gohman2009-07-201-18/+0
| | | | | | | | | | | | | Getelementptrs that are defined to wrap are virtually useless to optimization, and getelementptrs that are undefined on any kind of overflow are too restrictive -- it's difficult to ensure that all intermediate addresses are within bounds. I'm going to take a different approach. Remove a few optimizations that depended on this flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76437 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert more code to use Operator instead of explicitly handling bothDan Gohman2009-07-171-0/+42
| | | | | | | | ConstantExpr and Instruction. This involves duplicating some code between GetElementPtrInst and GEPOperator, but it's not a lot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76265 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a GEPOperator class, and move the hasNoPointerOverflowDan Gohman2009-07-171-0/+35
| | | | | | | accessors into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76245 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new Operator class, for handling Instructions and ConstantExprsDan Gohman2009-07-171-0/+132
in a convenient manner, factoring out some common code from InstructionCombining and ValueTracking. Move the contents of BinaryOperators.h into Operator.h and use Operator to generalize them to support ConstantExprs as well as Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76232 91177308-0d34-0410-b5e6-96231b3b80d8