summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Rename GR8_, GR16_, GR32_, and GR64_ to GR8_ABCD, GR16_ABCD,Dan Gohman2009-04-275-42/+42
| | | | | | GR32_ABCD, and GR64_ABCD, respectively, to help describe them. llvm-svn: 70210
* Break up long multi-mnemonic strings into separate lines for readability.Dan Gohman2009-04-272-12/+27
| | | | llvm-svn: 70209
* Revised 68749 to allow matching of load/stores for address spaces < 256.Mon P Wang2009-04-271-9/+9
| | | | llvm-svn: 70197
* Under unusual circumstances (jitting a function that causes the creation ofNick Lewycky2009-04-271-17/+23
| | | | | | | | | | | | another stub, but then never calling the jitted function) can cause the JIT to leave a stub in place. Judging by the comments this is a known deficiency, so we're just not going to use AssertingVH for the StubToFunctionTy map. Also shorten some lines longer than 80 columns. This fixes the "make check" failure with ocaml on x86-64 linux. llvm-svn: 70185
* When transforming sext(trunc(load(x))) into sext(smaller load(x)),Dan Gohman2009-04-271-1/+1
| | | | | | | the trunc is directly replaced with the smaller load, so don't try to create a new sext node. This fixes PR4050. llvm-svn: 70179
* Handle ands with ~0 correctly too. This fixes PR4052.Dan Gohman2009-04-271-0/+2
| | | | llvm-svn: 70176
* Make a major API change to BitstreamReader: split all the readingChris Lattner2009-04-263-3/+5
| | | | | | | | | state out of the BitstreamReader class into a BitstreamCursor class. Doing this allows the client to have multiple cursors into the same file, each with potentially different live block stacks and abbreviation records. llvm-svn: 70157
* Any size of integral indices are allowed in gep for indexing into sequential ↵Sanjiv Gupta2009-04-261-3/+2
| | | | | | types. Also adding a test case to check the indices type allowed into struct. llvm-svn: 70134
* testcase and asmparser fix for PR4066Chris Lattner2009-04-251-2/+5
| | | | llvm-svn: 70080
* Allow aliasee to be a GEP or bitcast instead of just a bitcast.Chris Lattner2009-04-252-7/+9
| | | | | | | | | | | The real fix for this whole mess is to require the operand of the alias to be a *GlobalValue* (not a general constant, including constant exprs) but allow the operand and the alias type to be unrelated. This fixes PR4066 llvm-svn: 70079
* Reuse unused val#'s to avoid running out of memory in extreme cases.Evan Cheng2009-04-251-1/+5
| | | | llvm-svn: 70069
* Fix PR4040: APInt's string constructor is too strictChris Lattner2009-04-251-7/+9
| | | | | | patch by Jeff Yasskin! llvm-svn: 70058
* add support for detecting process features on win64, patch byChris Lattner2009-04-251-36/+50
| | | | | | Nicolas Capens! llvm-svn: 70057
* Refactor the code to grab the low and high parts of a valueDan Gohman2009-04-254-126/+38
| | | | | | using EXTRACT_ELEMENT into a utility function. llvm-svn: 70056
* Return null instead of false, as appropriate.Dan Gohman2009-04-251-3/+3
| | | | llvm-svn: 70054
* Add several more icmp simplifications. Transform signed comparisonsDan Gohman2009-04-251-82/+159
| | | | | | | into unsigned ones when the operands are known to have the same sign bit value. llvm-svn: 70053
* Add a top-level comment about DAGCombiner's role in the compiler.Dan Gohman2009-04-251-0/+4
| | | | llvm-svn: 70052
* Handle ands with 0 and shifts by 0 correctly. These aren'tDan Gohman2009-04-251-2/+9
| | | | | | common, but indvars shouldn't crash on them. This fixes PR4054. llvm-svn: 70051
* Fix g++-4.4.0 warning, it was causing llvm-nm to fail on wrapped BC files:Torok Edwin2009-04-251-1/+1
| | | | | | | | | | | | Path.cpp:59: warning: case label value exceeds maximum value for type magic[0] is a (signed) char, but some case values are unsigned (e.g. 0xde). When magic[0] was 0xde, the switch has taken the default branch instead of case 0xde branch. Apparently this was the behaviour with older versions of gcc too, but not with g++. Now g++-4.4 behaves as gcc, and ignores unsigned case values out of range signed range. llvm-svn: 70038
* Do not share a single unknown val# for all the live ranges merged into a ↵Evan Cheng2009-04-251-19/+13
| | | | | | physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions. llvm-svn: 70026
* Change LowerCallResult method so that CCValAssign::BCvt can be used withBob Wilson2009-04-251-16/+16
| | | | | | f64 types. This is not used for anything yet. llvm-svn: 70006
* Fix PR 4057, a crash doing float->char const folding.Dale Johannesen2009-04-241-3/+4
| | | | | | | | This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. llvm-svn: 69990
* Adjust a comment to reflect what the code does. Splitting a 64-bit argumentBob Wilson2009-04-241-1/+1
| | | | | | | between registers and the stack may be required with the APCS ABI, but it isn't tied to using a particular version of the ARM architecture. llvm-svn: 69978
* Fix up some problems with getCopyToReg and getCopyFromReg nodes beingBob Wilson2009-04-241-8/+12
| | | | | | | | | chained and "flagged" together. I also made a few changes to handle the chain and flag values more consistently. I found these problems by inspection so I'm not aware of anything that breaks because of them (thus no testcase). llvm-svn: 69977
* Remove unnecessary references to f32 types. After specifying that f32Bob Wilson2009-04-241-4/+4
| | | | | | | should be bit-converted to i32, it is sufficient to list only i32 in subsequent definitions. llvm-svn: 69973
* Fix PR 4004 by including the call to __tls_get_addr in X86tlsaddr. This is notRafael Espindola2009-04-243-37/+26
| | | | | | very elegant, but neither is the tls specification :-( llvm-svn: 69968
* Revert 69952. Causes testsuite failures on linux x86-64.Rafael Espindola2009-04-2414-1548/+2080
| | | | llvm-svn: 69967
* PR2957Nate Begeman2009-04-2414-2080/+1548
| | | | | | | | | | | | | | ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. llvm-svn: 69952
* Instead of requiring TLI.LowerCallTo to return an ISD::BUILD_PAIR,Dan Gohman2009-04-241-60/+118
| | | | | | | | use ISD::EXTRACT_ELEMENT. SelectionDAG has a special fast-path for the cast of an EXTRACT_ELEMENT with a BUILD_PAIR operand, for the common case. llvm-svn: 69948
* Allow i16 type indices to gep.Sanjiv Gupta2009-04-242-7/+3
| | | | llvm-svn: 69946
* Factor out a bit of code that appears in several places into aDan Gohman2009-04-233-14/+16
| | | | | | utility function. llvm-svn: 69937
* Handle Void types in ComputeValueVTs. This doesn't currently occur,Dan Gohman2009-04-231-0/+3
| | | | | | | but this change makes the code more general and easier to adapt for new purposes. llvm-svn: 69935
* Fix spurious indentation in a comment.Dan Gohman2009-04-231-1/+1
| | | | llvm-svn: 69934
* Update comments.Evan Cheng2009-04-231-2/+2
| | | | llvm-svn: 69919
* Fix an obvious type.Evan Cheng2009-04-231-1/+1
| | | | llvm-svn: 69918
* Change SCEVExpander's expandCodeFor to provide more flexibilityDan Gohman2009-04-232-18/+13
| | | | | | | | | | | with the persistent insertion point, and change IndVars to make use of it. This fixes a bug where IndVars was holding on to a stale insertion point and forcing the SCEVExpander to continue to use it. This fixes PR4038. llvm-svn: 69892
* Banksel immediate constant will always immediately follow the GA/ES, so scan ↵Sanjiv Gupta2009-04-231-18/+20
| | | | | | an insn from beginnin to find out the banksel operand. llvm-svn: 69883
* Simplify trunc(extend(x)) in SCEVs, just for completeness. Also fix some oddNick Lewycky2009-04-231-4/+12
| | | | | | whitespace in the same file. llvm-svn: 69870
* Add support for printing MO_ExternalSymbol operands inDan Gohman2009-04-231-2/+4
| | | | | | | memory operand tuples. This doesn't ever come up in normal code however. llvm-svn: 69848
* Make sure both operands have binary instructions have the same type.Evan Cheng2009-04-221-11/+23
| | | | llvm-svn: 69844
* A few more places where the check of use_empty is needed.Evan Cheng2009-04-221-0/+3
| | | | llvm-svn: 69842
* Avoid deferencing use_begin() if value does not have a use.Evan Cheng2009-04-221-0/+1
| | | | llvm-svn: 69836
* Fix cut-n-pasto.Devang Patel2009-04-221-2/+2
| | | | llvm-svn: 69816
* Simplify trivial cast-of-cast SCEVs.Dan Gohman2009-04-221-0/+12
| | | | llvm-svn: 69809
* SCEVExpander's InsertCastOfTo knows how to move existing castDan Gohman2009-04-221-0/+5
| | | | | | | | | | | instructions in order to avoid inserting new ones. However, if the cast instruction is the SCEVExpander's InsertPt, this causes subsequently emitted instructions to be inserted near the cast, and not at the location of the original insert point. Fix this by adjusting the insert point in such cases. This fixes PR4009. llvm-svn: 69808
* Use BasicBlock::iterator instead of Instruction* for insert points,Dan Gohman2009-04-221-7/+7
| | | | | | to better handle inserting instructions at the end of a block. llvm-svn: 69807
* Make the function begin label start after ther data pointer.Sanjiv Gupta2009-04-223-9/+12
| | | | | | The address of data frame for function can be obtained by subtracting 2 from the function begin label. llvm-svn: 69801
* Real fix for PR3549, by using caching for predecessor counts in addition to ↵Owen Anderson2009-04-221-11/+13
| | | | | | | | the predecessors themselves. This halves the time to optimize the testcase, beyond what my previous patch did. llvm-svn: 69792
* Use PredIteratorCache in LCSSA, which gives a 37% overall speedup on the ↵Owen Anderson2009-04-221-2/+5
| | | | | | testcase from PR3549. More improvements to come. llvm-svn: 69788
* use predicate instead of hand-rolled loopChris Lattner2009-04-211-11/+4
| | | | llvm-svn: 69752
OpenPOWER on IntegriCloud