aboutsummaryrefslogtreecommitdiff
path: root/lib/VMCore
AgeCommit message (Collapse)Author
2009-09-16Merge 81845 from mainline.Tanya Lattner
fix PR4963: folding insertvalue would sometimes turn a packed struct into an unpacked one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_26@81980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04Merge 80780 from mainline.Tanya Lattner
Opaque types didn't work if llvm_is_multithreaded(). AlwaysOpaqueTy is always NULL at this point, and it causes an assertion failure. Fix it by using the just constructed tmp instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_26@81030 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Merge from mainline.Tanya Lattner
This should use isIndenticalToWhenDefined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_26@80554 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31Merge from mainline.Tanya Lattner
Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined, and introduce a new Instruction::isIdenticalTo which tests for full identity, including the SubclassOptionalData flags. Also, fix the Instruction::clone implementations to preserve the SubclassOptionalData flags. Finally, teach several optimizations how to handle SubclassOptionalData correctly, given these changes. This fixes the counterintuitive behavior of isIdenticalTo not comparing the full value, and clone not returning an identical clone, as well as some subtle bugs that could be caused by these. Thanks to Nick Lewycky for reporting this, and for an initial patch! git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_26@80553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20Reduce contention on the Attributes lock by using atomic operations for ↵Owen Anderson
reference counting rather than locking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20Rename hasNoUnsignedOverflow and hasNoSignedOverflow to hasNoUnsignedWrapDan Gohman
and hasNoSignedWrap, for consistency with the nuw and nsw properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79539 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19Add a fast path for setName("") on an unnamed value.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19AttrListPtr operations need to be atomic.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79486 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19Change ValueSymbolTable to use raw_svector_ostream for string concatenation.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79449 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19Reapply my less-lock-contention-in-leak-detector patch, now with new filesOwen Anderson
actually added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79429 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19Make a SmallVector size more reasonable.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19Revert my last patch temporarily.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19Privatize part of the leak detector mechanism, which turned out to be ↵Owen Anderson
heavily contended when trying to run opt in parallel. This lets parallel opt crunch 403.gcc in about a third of the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79387 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18Privatize the ValueHandle global map. Because this is used so heavily ↵Owen Anderson
throughout the code base, locking all accesses to it is not practical performance-wise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Add prefix only if it is needed.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79289 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Privatize the last bits of static type state.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79258 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Move the TypeMap lock to a member on LLVMContextImpl.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79256 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Add locking around the attributes list.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79255 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17the MinPad argument to PadToColumn only really makes sense to be 1,Chris Lattner
just remove the argument and replace it with 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Fix printing of instructions with null operands.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79243 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17Always print at least one space before adding a comment.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79242 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Expose creating constant ints and floats from strings in llvm-c.Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79213 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Add helper functions to ConstantInt and ConstantFP to accept strings.Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79212 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Add a getOffsetOf, for building a target-independent expression forDan Gohman
offsetof, similar to getSizeOf for sizeof. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79208 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Add an llvm-c function that lets you insert an instruction with a name.Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79163 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Expose most of the Constant creation functions to llvm-c.Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79160 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16Expose most of the rest of IRBuilder's functions to llvm-c.Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79159 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-15switch DominanceFrontier::splitBlock to use a smallvector forChris Lattner
the pred list instead of a vector, saving a boat load of malloc/free's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79062 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-14Expose LLVMContext to llvm-c.Erick Tryzelaar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Actually privatize a IntegerTypes, and fix a few bugs exposed by this.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78955 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Make formatted_raw_ostream restore the buffer settings of theDan Gohman
underlying stream when it is finished, so that clients don't have to do this manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78952 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Take the fast path for any named value and any GlobalValue, which doesn'tDan Gohman
need TypePrinting despite being a subclass of Constant. This fixes compile-time problems especially visible on 403.gcc when -asm-verbose is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78951 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Push LLVMContexts through the IntegerType APIs.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Fix a 4x slowdown in llc -asm-verbose caused by the use ofDan Gohman
WriteAsOperand in more places. Now that more things are using WriteAsOperand, its behavior of constructing a TypePrinting object and populating it with strings for all the numbered types in the Module on each call is a significant bottleneck. Fancier solutions could be pursued here, but for now, just bypass the TypePrinting overhead in obvious cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78906 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Change the indentation for LLVM Assembly files from 1 tab to 2 spaces.Dan Gohman
This is vaguely consistent with LLVM's own source code, but more importantly it lets more lines stay within 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78879 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Now that numbered types have their number printed, it's no longerDan Gohman
interesting to print the number in a comment. Numbered instructions don't need their number in a comment either. Also, tidy up newline printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78865 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Extend the AsmWriter to print unnamed numbered types as "%0 = type ..."Dan Gohman
and unnamed numbered global variables as "@0 = global ...". Extend the AsmParser to recognize these forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78859 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Make AsmWriter more careful with formatted_raw_ostream so thatDan Gohman
it doesn't leave the underlying stream in unbuffered mode when the stream was originally buffered. Also, change WriteAsOperand back to plain raw_ostream. This lets it work for either formatted_raw_ostream or plain raw_ostream, so that it doesn't have to force a buffer flush on a plain raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78837 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Make LLVM Assembly dramatically easier to read by aligning the comments,Dan Gohman
using formatted_raw_ostream's PadToColumn. Before: bb1: ; preds = %bb %2 = sext i32 %i.01 to i64 ; <i64> [#uses=1] %3 = getelementptr double* %p, i64 %2 ; <double*> [#uses=1] %4 = load double* %3, align 8 ; <double> [#uses=1] %5 = fmul double %4, 1.100000e+00 ; <double> [#uses=1] %6 = sext i32 %i.01 to i64 ; <i64> [#uses=1] %7 = getelementptr double* %p, i64 %6 ; <double*> [#uses=1] After: bb1: ; preds = %bb %2 = sext i32 %i.01 to i64 ; <i64> [#uses=1] %3 = getelementptr double* %p, i64 %2 ; <double*> [#uses=1] %4 = load double* %3, align 8 ; <double> [#uses=1] %5 = fmul double %4, 1.100000e+00 ; <double> [#uses=1] %6 = sext i32 %i.01 to i64 ; <i64> [#uses=1] %7 = getelementptr double* %p, i64 %6 ; <double*> [#uses=1] Several tests required whitespace adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Remove a bunch more now-unnecessary Context arguments.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78809 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson
infrastructure work needed to get the contexts to where they need to be first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-12Simplify this code, and use an in-bounds GEP.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson
while the latter is capable of representing either a primitive or an extended type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Add convenience functions for creating nsw add operators.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Don't set the isexact flag if an sdiv operator has been folded intoDan Gohman
something else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Simplify ConstantExpr::getInBoundsGetElementPtr and fix a possible crash, ifDaniel Dunbar
constant folding eliminated the GEP instruction. - clang was hitting this on its test suite (for x86_64, at least). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78698 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Revert 78680 until I figure out why it completely broke things.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78697 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Link NamedMDNodes.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78696 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Add convenience functions for creating inbounds GEPs.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78695 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-11Make LLVMContext and LLVMContextImpl classes instead of structs.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78690 91177308-0d34-0410-b5e6-96231b3b80d8