de2d8694e25a814696358e95141f4b1aa4d8847e |
|
20-Sep-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r275480 Bug: http://b/31320715 This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from aosp/dev. Test: Build AOSP and run RenderScript tests (host tests for slang and libbcc, RsTest, CTS) Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6948897e478cbd66626159776a8017b3c18579b9 |
|
01-Jul-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r239765 Bug: 20140355: This rebase pulls the upstream fix for the spurious warnings mentioned in the bug. Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0c7f116bb6950ef819323d855415b2f2b0aad987 |
|
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
975e958dbc12ba412385b721100fc1c830b0e3ab |
|
25-Nov-2013 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Merging r195635: ------------------------------------------------------------------------ r195635 | dsanders | 2013-11-25 11:14:43 +0000 (Mon, 25 Nov 2013) | 19 lines Fixed tryFoldToZero() for vector types that need expansion. Summary: Moved the requirement for SelectionDAG::getConstant() to return legally typed nodes slightly earlier. There were two optional DAGCombine passes that were missed out and were required to produce type-legal DAGs. Simplified a code-path in tryFoldToZero() to use SelectionDAG::getConstant(). This provides support for both promoted and expanded vector types whereas the previous code only supported promoted vector types. Fixes a "Type for zero vector elements is not legal" assertion detected by an llvm-stress generated test. Reviewers: resistor CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2251 ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f02a188899769cde2315c964f0fbed1d024b7514 |
|
25-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195491: ------------------------------------------------------------------------ r195491 | probinson | 2013-11-22 11:11:24 -0800 (Fri, 22 Nov 2013) | 11 lines Teach ISel not to optimize 'optnone' functions (revised). Improvements over r195317: - Set/restore EnableFastISel flag instead of just running FastISel within SelectAllBasicBlocks; the flag is checked in various places, and FastISel won't run properly if those places don't do the right thing. - Test looks for normal ISel versus FastISel behavior, and not something more subtle that doesn't work everywhere. Based on work by Andrea Di Biagio. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ee287ca22abcce9f769618c107ff3f46aa2d0cba |
|
22-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195156: ------------------------------------------------------------------------ r195156 | ributzka | 2013-11-19 13:20:17 -0800 (Tue, 19 Nov 2013) | 3 lines [DAG] Refactor vector splitting code in SelectionDAG. No functional change intended. Reviewed by Tom ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
54075bbea7e70fea6cdb9e5e89b066118c1d314b |
|
21-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195339: ------------------------------------------------------------------------ r195339 | chapuni | 2013-11-21 02:55:15 -0800 (Thu, 21 Nov 2013) | 5 lines Revert r195317 (and r195333), "Teach ISel not to optimize 'optnone' functions." It broke, at least, i686 target. It is reproducible with "llc -mtriple=i686-unknown". FYI, it didn't appear to add either "-O0" or "-fast-isel". ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0a0da619eb7a072836cf2c5debee1c5c7c8f5496 |
|
21-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Merging r195317: ------------------------------------------------------------------------ r195317 | probinson | 2013-11-20 22:33:32 -0800 (Wed, 20 Nov 2013) | 4 lines Teach ISel not to optimize 'optnone' functions. Based on work by Andrea Di Biagio. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ea28aafa83fc2b6dd632041278c9a18e5a2b2b41 |
|
15-Nov-2013 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Fix illegal DAG produced by SelectionDAG::getConstant() for v2i64 type Summary: When getConstant() is called for an expanded vector type, it is split into multiple scalar constants which are then combined using appropriate build_vector and bitcast operations. In addition to the usual big/little endian differences, the case where the element-order of the vector does not have the same endianness as the elements themselves is also accounted for. For example, for v4i32 on big-endian MIPS, the byte-order of the vector is <3210,7654,BA98,FEDC>. For little-endian, it is <0123,4567,89AB,CDEF>. Handling this case turns out to be a nop since getConstant() returns a splatted vector (so reversing the element order doesn't change the value) This fixes a number of cases in MIPS MSA where calling getConstant() during operation legalization introduces illegal types (e.g. to legalize v2i64 UNDEF into a v2i64 BUILD_VECTOR of illegal i64 zeros). It should also handle bigger differences between illegal and legal types such as legalizing v2i64 into v8i16. lowerMSASplatImm() in the MIPS backend no longer needs to avoid calling getConstant() so this function has been updated in the same patch. For the sake of transparency, the steps I've taken since the review are: * Added 'virtual' to isVectorEltOrderLittleEndian() as requested. This revealed that the MIPS tests were falsely passing because a polymorphic function was not actually polymorphic in the reviewed patch. * Fixed the tests that were now failing. This involved deleting the code to handle the MIPS MSA element-order (which was previously doing an byte-order swap instead of an element-order swap). This left isVectorEltOrderLittleEndian() unused and it was deleted. * Fixed build failures caused by rebasing beyond r194467-r194472. These build failures involved the bset, bneg, and bclr instructions added in these commits using lowerMSASplatImm() in a way that was no longer valid after this patch. Some of these were fixed by calling SelectionDAG::getConstant() instead, others were fixed by a new function getBuildVectorSplat() that provided the removed functionality of lowerMSASplatImm() in a more sensible way. Reviewers: bkramer Reviewed By: bkramer CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1973 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
32e3150faba95187c76b211e27d6496a21bee360 |
|
07-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Fix some assert messages to say the correct opcode name. Looks like one assert got copy and pasted to many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
936910d9293f7118056498c75c7bca79a7fc579c |
|
05-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eacbfd1d512b97b5551ce9f30bf85ba000d9da42 |
|
05-Oct-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Don't crash in SelectionDAGISel when a vreg that is being pointed to by a dbg_value belonging to a function argument is eliminated during instruction selection. rdar://problem/15094721. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
596cfd045fa05c249083b5ff7cdb5e32f4d92b97 |
|
04-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Revert r191940 to see if it fixes the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d3562956789dbd0571a7e46052bee64b153fa7c4 |
|
04-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8819c84aed10777ba91d4e862229882b8da0b272 |
|
01-Oct-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove several unused variables. Patch by Alp Toker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b6ac11cd03e9dd97b45dc97787171f942ef8e344 |
|
26-Sep-2013 |
Andrew Trick <atrick@apple.com> |
Added temp flag -misched-bench for staging in default changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7394a7c0c27d498fe7ff0760eeefdb83bb54a795 |
|
26-Sep-2013 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eed779ff68c9a4612ea229f4fbd23a5258458889 |
|
24-Sep-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] Allow for copies from vreg -> vreg to be in a terminator sequence. Sometimes a copy from a vreg -> vreg sneaks into the middle of a terminator sequence. It is safe to slice this into the stack protector success bb. This fixes PR16979. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3e84ad28d4d3ceee25771b1e30315c20b7608c39 |
|
22-Sep-2013 |
Tim Northover <tnorthover@apple.com> |
ISelDAG: spot chain cycles involving MachineNodes Previously, the DAGISel function WalkChainUsers was spotting that it had entered already-selected territory by whether a node was a MachineNode (amongst other things). Since it's fairly common practice to insert MachineNodes during ISelLowering, this was not the correct check. Looking around, it seems that other nodes get their NodeId set to -1 upon selection, so this makes sure the same thing happens to all MachineNodes and uses that characteristic to determine whether we should stop looking for a loop during selection. This should fix PR15840. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
818833f27929d650b4323774cd3660860588f687 |
|
17-Sep-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Fix PR16736 and rdar://problem/14990587. A DBG_VALUE is register-indirect iff the first operand is a register _and_ the second operand is an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
021f3280fe791722c668cb96b02f473f2f76f925 |
|
22-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
[stackprotector] When finding the split point to splice off the end of a parentmbb into a successmbb, include any DBG_VALUE MI. Fix for PR16954. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1a6de17273c58129880d8de8094ecc935721b1a1 |
|
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Remove unused variables that crept in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
657484f494edbac571ce2a91b8ac227e5011321d |
|
20-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Teach selectiondag how to handle the stackprotectorcheck intrinsic. Previously, generation of stack protectors was done exclusively in the pre-SelectionDAG Codegen LLVM IR Pass "Stack Protector". This necessitated splitting basic blocks at the IR level to create the success/failure basic blocks in the tail of the basic block in question. As a result of this, calls that would have qualified for the sibling call optimization were no longer eligible for optimization since said calls were no longer right in the "tail position" (i.e. the immediate predecessor of a ReturnInst instruction). Then it was noticed that since the sibling call optimization causes the callee to reuse the caller's stack, if we could delay the generation of the stack protector check until later in CodeGen after the sibling call decision was made, we get both the tail call optimization and the stack protector check! A few goals in solving this problem were: 1. Preserve the architecture independence of stack protector generation. 2. Preserve the normal IR level stack protector check for platforms like OpenBSD for which we support platform specific stack protector generation. The main problem that guided the present solution is that one can not solve this problem in an architecture independent manner at the IR level only. This is because: 1. The decision on whether or not to perform a sibling call on certain platforms (for instance i386) requires lower level information related to available registers that can not be known at the IR level. 2. Even if the previous point were not true, the decision on whether to perform a tail call is done in LowerCallTo in SelectionDAG which occurs after the Stack Protector Pass. As a result, one would need to put the relevant callinst into the stack protector check success basic block (where the return inst is placed) and then move it back later at SelectionDAG/MI time before the stack protector check if the tail call optimization failed. The MI level option was nixed immediately since it would require platform specific pattern matching. The SelectionDAG level option was nixed because SelectionDAG only processes one IR level basic block at a time implying one could not create a DAG Combine to move the callinst. To get around this problem a few things were realized: 1. While one can not handle multiple IR level basic blocks at the SelectionDAG Level, one can generate multiple machine basic blocks for one IR level basic block. This is how we handle bit tests and switches. 2. At the MI level, tail calls are represented via a special return MIInst called "tcreturn". Thus if we know the basic block in which we wish to insert the stack protector check, we get the correct behavior by always inserting the stack protector check right before the return statement. This is a "magical transformation" since no matter where the stack protector check intrinsic is, we always insert the stack protector check code at the end of the BB. Given the aforementioned constraints, the following solution was devised: 1. On platforms that do not support SelectionDAG stack protector check generation, allow for the normal IR level stack protector check generation to continue. 2. On platforms that do support SelectionDAG stack protector check generation: a. Use the IR level stack protector pass to decide if a stack protector is required/which BB we insert the stack protector check in by reusing the logic already therein. If we wish to generate a stack protector check in a basic block, we place a special IR intrinsic called llvm.stackprotectorcheck right before the BB's returninst or if there is a callinst that could potentially be sibling call optimized, before the call inst. b. Then when a BB with said intrinsic is processed, we codegen the BB normally via SelectBasicBlock. In said process, when we visit the stack protector check, we do not actually emit anything into the BB. Instead, we just initialize the stack protector descriptor class (which involves stashing information/creating the success mbbb and the failure mbb if we have not created one for this function yet) and export the guard variable that we are going to compare. c. After we finish selecting the basic block, in FinishBasicBlock if the StackProtectorDescriptor attached to the SelectionDAGBuilder is initialized, we first find a splice point in the parent basic block before the terminator and then splice the terminator of said basic block into the success basic block. Then we code-gen a new tail for the parent basic block consisting of the two loads, the comparison, and finally two branches to the success/failure basic blocks. We conclude by code-gening the failure basic block if we have not code-gened it already (all stack protector checks we generate in the same function, use the same failure basic block). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b49860ef030cb2dba0386278ee8737eecc4e7272 |
|
17-Aug-2013 |
Jim Grosbach <grosbach@apple.com> |
ARM: Fix more fast-isel verifier failures. Teach the generic instruction selection helper functions to constrain the register classes of their input operands. For non-physical register references, the generic code needs to be careful not to mess that up when replacing references to result registers. As the comment indicates for MachineRegisterInfo::replaceRegWith(), it's important to call constrainRegClass() first. rdar://12594152 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0ff1190888f5b24f64a196392c452800447186d8 |
|
15-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Replace getValueType().getSimpleVT() with getSimpleValueType(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
81e480463d8bb57776d03cebfd083762909023f1 |
|
27-Jul-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Reimplement isPotentiallyReachable to make nocapture deduction much stronger. Adds unit tests for it too. Split BasicBlockUtils into an analysis-half and a transforms-half, and put the analysis bits into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable into llvm::isPotentiallyReachable and move it into Analysis/CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3517640443f0b5224e2a6414c246ac60016ee9d4 |
|
09-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Reapply an improved version of r180816/180817. Change the informal convention of DBG_VALUE machine instructions so that we can express a register-indirect address with an offset of 0. The old convention was that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain register values the combination reg, reg is used. MachineInstrBuilder::BuildMI knows how to build the new DBG_VALUES. rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
918b7c82f8f53241a5bb354931abfe53634bfc4c |
|
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify landing pad lowering. Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering landing pad arguments. These nodes were previously legalized into CopyFromReg nodes, but that never worked properly because the CopyFromReg node weren't guaranteed to be scheduled at the top of the basic block. This meant the exception pointer and selector registers could be clobbered before being copied to a virtual register. This patch copies the two physical registers to virtual registers at the beginning of the basic block, and lowers the landingpad instruction directly to two CopyFromReg nodes reading the *virtual* registers. This is safe because virtual registers don't get clobbered. A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c93822901aef17aaf8bb1303f27b47025fd1d582 |
|
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r185595-185596 which broke buildbots. Revert "Simplify landing pad lowering." Revert "Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9c0e9217325db888331c23ad7c332c09d64b02d4 |
|
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify landing pad lowering. Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering landing pad arguments. These nodes were previously legalized into CopyFromReg nodes, but that never worked properly because the CopyFromReg node weren't guaranteed to be scheduled at the top of the basic block. This meant the exception pointer and selector registers could be clobbered before being copied to a virtual register. This patch copies the two physical registers to virtual registers at the beginning of the basic block, and lowers the landingpad instruction directly to two CopyFromReg nodes reading the *virtual* registers. This is safe because virtual registers don't get clobbered. A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
32bdf82b9fbe88687be160863a6d221fe692c58b |
|
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ba54bca472a15d0657e1b88776f7069042b60b4e |
|
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6d9dbd5526e3161db884fc4fe99c278bb59ccc19 |
|
16-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions Rather than using the full power of target-specific addressing modes in DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This reduces the complexity of debug info handling down to two representations of values (reg+offset and frame index+offset) rather than three or four. Ideally we could ensure that frame indicies had been eliminated by the time we reached an assembly or dwarf generation, but I haven't spent the time to figure out where the FIs are leaking through into that & whether there's a good place to convert them. Some FI+offset=>reg+offset conversion is done (see PrologEpilogInserter, for example) which is necessary for some SelectionDAG assumptions about registers, I believe, but it might be possible to make this a more thorough conversion & ensure there are no remaining FIs no matter how instruction selection is performed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6a2e7ac0b6647a409394e58b385e579ea62b5cba |
|
06-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Cache the TargetLowering info object as a pointer. Caching it as a pointer allows us to reset it if the TargetMachine object changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
384ceb8446bebe4425e65d1035256eee3b4cfa6d |
|
06-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Don't cache the TargetLoweringInfo object inside of the FunctionLowering object. The TargetLoweringInfo object is owned by the TargetMachine. In the future, the TargetMachine object may change, which may also change the TargetLoweringInfo object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dd0fb018a7cd2214c7bc5c6c767f626f99b47ba9 |
|
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 3/4. Remove the old IR ordering mechanism and switch to new one. Fix unit test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac6d9bec671252dd1e596fa71180ff6b39d06b5d |
|
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 2/4. Change SelectionDAG::getXXXNode() interfaces as well as call sites of these functions to pass in SDLoc instead of DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
86a87d9ba1faf153e0e6eaddfd3e95595c83bcb1 |
|
01-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Temporarily revert "Change the informal convention of DBG_VALUE so that we can express a" because it breaks some buildbots. This reverts commit 180816. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a2b56692c8b824b8cc4a0927bb555f3718e9bee8 |
|
01-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Change the informal convention of DBG_VALUE so that we can express a register-indirect address with an offset of 0. It used to be that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain registers use the combination reg, reg. rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
75299e3a95c0cfcade8515c603e7802351a11bee |
|
20-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Move TryToFoldFastISelLoad to FastISel, where it belongs. In general, I'm trying to move as much FastISel logic as possible out of the main path in SelectionDAGISel - intermixing them just adds confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2a8bea7a8eba9bfa05dcc7a87e9152a0043841b2 |
|
20-Apr-2013 |
Michael Liao <michael.liao@intel.com> |
ArrayRefize getMachineNode(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
03494e05e8aa1b919b5a8a6277d7ffec5d1bfbb5 |
|
19-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Use dbgs() consistently for -debug printouts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5bd0767a040eae0d8f153c46238849e64e166018 |
|
19-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Add some more stats for fast isel vs. SelectionDAG, w.r.t lowering function arguments in entry BBs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fa963a885c074b3b0d6cc2466036297c476f7103 |
|
20-Mar-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Move SDNode order propagation to SDNodeOrdering, which also fixes a missed case of order propagation during isel. Thanks Owen for the suggestion! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d73dc544f5e37e6d58befc71e57da3c132804543 |
|
20-Mar-2013 |
Justin Holewinski <jholewinski@nvidia.com> |
Propagate DAG node ordering during type legalization and instruction selection A node's ordering is only propagated during legalization if (a) the new node does not have an ordering (is not a CSE'd node), or (b) the new node has an ordering that is higher than the node being legalized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4cb1f5f4064f2eec1420dc30bf32ac54bd40e222 |
|
13-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Reset some of the target options which affect code generation. This doesn't reset all of the target options within the TargetOptions object. This is because some of those are ABI-specific and must be determined if it's okay to change those on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fa785cb22d50c657eb08c762d627cd6aa96982f3 |
|
08-Mar-2013 |
Jan Wen Voung <jvoung@google.com> |
Disable statistics on Release builds and move tests that depend on -stats. Summary: Statistics are still available in Release+Asserts (any +Asserts builds), and stats can also be turned on with LLVM_ENABLE_STATS. Move some of the FastISel stats that were moved under DEBUG() back out of DEBUG(), since stats are disabled across the board now. Many tests depend on grepping "-stats" output. Move those into a orig_dir/Stats/. so that they can be marked as unsupported when building without statistics. Differential Revision: http://llvm-reviews.chandlerc.com/D486 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3853f74aba301ef08b699bac2fa8e53230714a58 |
|
07-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ArrayRefize some code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4d895455fe1bcc0bbfe1a0f18c01246694f64a9c |
|
07-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
No need to go through int64 and APInt when generating a new constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b804a1b1783e99ec12a093767027269a373189d3 |
|
02-Mar-2013 |
Eli Bendersky <eliben@google.com> |
Remove duplicate line and move another closer to its actual use git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6437d38a0deb0cd51607dd624a70d093ae347156 |
|
01-Mar-2013 |
Eli Bendersky <eliben@google.com> |
A small refactoring + adding comments. SelectionDAGIsel::LowerArguments needs a function, not a basic block. So it makes sense to pass it the function instead of extracting a basic-block from the function and then tossing it. This is also more self-documenting (functions have arguments, BBs don't). In addition, added comments to a couple of Select* methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f686cfb33b232db5f9a671ddaf1265b42c7180d5 |
|
28-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Remove unnecessary cast to void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
139f50a1a8d985bd950d88cef54a7ee560de9cb9 |
|
27-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
Silence the unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
07cd932c93fc3d552763f3eddced138bffdd9bd9 |
|
27-Feb-2013 |
Nadav Rotem <nrotem@apple.com> |
The FastISEL should be fast. But when we record statistics we use atomic operations to increment the counters. This patch disables the counters on non-debug builds. This reduces the runtime of SelectionDAGISel::SelectCodeCommon by ~5%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ffa1dbadaf73d5b80a2bdf421c16cba29aea80a3 |
|
25-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
Fix wording. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fd3417d288c22673ec6d76dc4695989bb544373f |
|
25-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add X86FastIsel::FastLowerArguments to handle functions with 6 or fewer scalar integer (i32 or i64) arguments. It completely eliminates the need for SDISel for trivial functions. Also, add the new llc -fast-isel-abort-args option, which is similar to -fast-isel-abort option, but for formal argument lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176052 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b875acda987650d1d734b8bc6e76283950529f84 |
|
18-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Remove a redundant call to the setHasMSInlineAsm function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ef669c7175f959c39b7652f10c2b6ed9d8f83ae |
|
18-Feb-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[ms-inline asm] Fix undefined behavior to reset hasMSInlineAsm in advance of SelectAllBasicBlocks(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b56606274d43c7a3e01b18a08d1115fbf2889996 |
|
16-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Do not omit the frame pointer if we have ms-inline assembly. If the frame pointer is omitted, and any stack changes occur in the inline assembly, e.g.: "pusha", then any C local variable or C argument references will be incorrect. I pass no judgement on anyone who would do such a thing. ;) rdar://13218191 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
789cb5df9ca61f8a3794a4fbde7cc020fd00a02a |
|
15-Feb-2013 |
Bill Wendling <isanbard@gmail.com> |
Use the 'target-features' and 'target-cpu' attributes to reset the subtarget features. If two functions require different features (e.g., `-mno-sse' vs. `-msse') then we want to honor that, especially during LTO. We can do that by resetting the subtarget's features depending upon the 'target-feature' attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
092e5e75661fdd5d54a748fb00fab59d21031268 |
|
11-Feb-2013 |
Evan Cheng <evan.cheng@apple.com> |
Currently, codegen may spent some time in SDISel passes even if an entire function is successfully handled by fast-isel. That's because function arguments are *always* handled by SDISel. Introduce FastLowerArguments to allow each target to provide hook to handle formal argument lowering. As a proof-of-concept, add ARMFastIsel::FastLowerArguments to handle functions with 4 or fewer scalar integer (i8, i16, or i32) arguments. It completely eliminates the need for SDISel for trivial functions. rdar://13163905 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
be04929f7fd76a921540e9901f24563e51dc1219 |
|
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move TargetTransformInfo to live under the Analysis library. This no longer would violate any dependency layering and it is in fact an analysis. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e4b4edd72ae596ac8d1fdbc6e77f61e331f6775d |
|
05-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Funnel the actual TargetTransformInfo pass from the SelectionDAGISel pass into the SelectionDAG itself rather than snooping on the implementation of that pass as exposed by the TargetMachine. This removes the last direct client of the ScalarTargetTransformInfo class outside of the TTI pass implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5d3cfa6d1f6d3069893d50af39511cbf5576be91 |
|
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstrBuilder for PHI nodes in SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
425e951734c3a0615e22ec94ffa51cc16ce6e483 |
|
11-Dec-2012 |
Chad Rosier <mcrosier@apple.com> |
Fall back to the selection dag isel to select tail calls. This shouldn't affect codegen for -O0 compiles as tail call markers are not emitted in unoptimized compiles. Testing with the external/internal nightly test suite reveals no change in compile time performance. Testing with -O1, -O2 and -O3 with fast-isel enabled did not cause any compile-time or execution-time failures. All tests were performed on my x86 machine. I'll monitor our arm testers to ensure no regressions occur there. In an upcoming clang patch I will be marking the objc_autoreleaseReturnValue and objc_retainAutoreleaseReturnValue as tail calls unconditionally. While it's theoretically true that this is just an optimization, it's an optimization that we very much want to happen even at -O0, or else ARC applications become substantially harder to debug. Part of rdar://12553082 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
46608c0f648af75dd7260c3d881ca17353bb5982 |
|
04-Dec-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use dyn_cast instead of isa and cast. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ad1cc1d1bfc0accd3f1af5c02ac367ff46a4bfdf |
|
13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Allow subtargets to enable misched and dependent options. This allows me to begin enabling (or backing out) misched by default for one subtarget at a time. To run misched we typically want to: - Disable SelectionDAG scheduling (use the source order scheduler) - Enable more aggressive coalescing (until we decide to always run the coalescer this way) - Enable MachineScheduler pass itself. Disabling PostRA sched may follow for some subtargets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167826 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e4f273908bd37df5f0f6b2c575dcb2af99f6b85b |
|
15-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Freeze the reserved registers as soon as isel is complete. Also provide an MRI::getReservedRegs() function to access the frozen register set, and isReserved() and isAllocatable() methods to test individual registers. The various implementations of TRI::getReservedRegs() are quite complicated, and many passes need to look at the reserved register set. This patch makes it possible for these passes to use the cached copy in MRI, avoiding a lot of malloc traffic and repeated calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1d2b45f1670a76e61d997de865d154ee77d01ea4 |
|
16-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix bad comment. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c05d30601ced172b55be81bb529df6be91d6ae15 |
|
06-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1a710fdde197b00107ef55df51054925b9a5d2a2 |
|
24-Aug-2012 |
Manman Ren <mren@apple.com> |
BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle the case of multiple edges from one block to another. A simple example is a switch statement with multiple values to the same destination. The definition of an edge is modified from a pair of blocks to a pair of PredBlock and an index into the successors. Also set the weight correctly when building SelectionDAG from LLVM IR, especially when converting a Switch. IntegersSubsetMapping is updated to calculate the weight for each cluster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
96601ca332ab388754ca4673be8973396fea2ddd |
|
22-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3 |
|
03-Aug-2012 |
Bob Wilson <bob.wilson@apple.com> |
Fall back to selection DAG isel for calls to builtin functions. Fast isel doesn't currently have support for translating builtin function calls to target instructions. For embedded environments where the library functions are not available, this is a matter of correctness and not just optimization. Most of this patch is just arranging to make the TargetLibraryInfo available in fast isel. <rdar://problem/12008746> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f51f1a7dd60d1f7ceab2d5819a44ffe860db0389 |
|
13-Jul-2012 |
Jim Grosbach <grosbach@apple.com> |
Provide function name in 'Cannot select' fatal error. When dumping the DAG for a fatal 'Cannot select' back-end error, also provide the name of the function the construct is in. Useful when dealing with large testcases, as the next step is to llvm-extract the function in question to get a small(er) testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0bcbd1df7a204e1e512f1a27066d725309de1b13 |
|
28-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
39379c5df3a0bdcd768fc6421381ca805cd4ee21 |
|
01-May-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Add some constantness. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0b35c35efcc584c0a09ed70840bcca420f42be2f |
|
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix PR12599. The X86 target is editing the selection DAG while isel is selecting nodes following a topological ordering. When the DAG hacking triggers CSE, nodes can be deleted and bad things happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8c48e4ff899303eb9a4ea8ed1c43d175f0cf48ff |
|
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make ISelPosition a local variable. Now that multiple DAGUpdateListeners can be active at the same time, ISelPosition can become a local variable in DoInstructionSelection. We simply register an ISelUpdater with CurDAG while ISelPosition exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bc7d448f242b1bbc1031fb87cd69c285ff9aaffa |
|
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Register DAGUpdateListeners with SelectionDAG. Instead of passing listener pointers to RAUW, let SelectionDAG itself keep a linked list of interested listeners. This makes it possible to have multiple listeners active at once, like RAUWUpdateListener was already doing. It also makes it possible to register listeners up the call stack without controlling all RAUW calls below. DAGUpdateListener uses an RAII pattern to add itself to the SelectionDAG list of active listeners. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
26c8dcc692fb2addd475446cfff24d6a4e958bca |
|
04-Apr-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Always compute all the bits in ComputeMaskedBits. This allows us to keep passing reduced masks to SimplifyDemandedBits, but know about all the bits if SimplifyDemandedBits fails. This allows instcombine to simplify cases like the one in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
47c144505b9be28ed22c626b3a407c11dba2fec5 |
|
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
misched preparation: clarify ScheduleDAG and ScheduleDAGInstrs roles. ScheduleDAG is responsible for the DAG: SUnits and SDeps. It provides target hooks for latency computation. ScheduleDAGInstrs extends ScheduleDAG and defines the current scheduling region in terms of MachineInstr iterators. It has access to the target's scheduling itinerary data. ScheduleDAGInstrs provides the logic for building the ScheduleDAG for the sequence of MachineInstrs in the current region. Target's can implement highly custom schedulers by extending this class. ScheduleDAGPostRATDList provides the driver and diagnostics for current postRA scheduling. It maintains a current Sequence of scheduled machine instructions and logic for splicing them into the block. During scheduling, it uses the ScheduleHazardRecognizer provided by the target. Specific changes: - Removed driver code from ScheduleDAG. clearDAG is the only interface needed. - Added enterRegion/exitRegion hooks to ScheduleDAGInstrs to delimit the scope of each scheduling region and associated DAG. They should be used to setup and cleanup any region-specific state in addition to the DAG itself. This is necessary because we reuse the same ScheduleDAG object for the entire function. The target may extend these hooks to do things at regions boundaries, like bundle terminators. The hooks are called even if we decide not to schedule the region. So all instructions in a block are "covered" by these calls. - Added ScheduleDAGInstrs::begin()/end() public API. - Moved Sequence into the driver layer, which is specific to the scheduling algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
acddd4963d2f3b5fd94ab872b4fd393b34c80e5f |
|
07-Mar-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0796134bde31f6d58d077f556fd08ca3734a9e6e |
|
14-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Rename getExceptionAddressRegister() to getExceptionPointerRegister() for consistency with setExceptionPointerRegister(...). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8833ef03b9ceaa52063116819fff8b3d16fd8933 |
|
06-Feb-2012 |
Bill Wendling <isanbard@gmail.com> |
[unwind removal] Remove all of the code for the dead 'unwind' instruction. There were no 'unwind' instructions being generated before this, so this is in effect a no-op. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ee498d3254b86bceb4f441741e9f442990647ce6 |
|
01-Feb-2012 |
Andrew Trick <atrick@apple.com> |
VLIW specific scheduler framework that utilizes deterministic finite automaton (DFA). This new scheduler plugs into the existing selection DAG scheduling framework. It is a top-down critical path scheduler that tracks register pressure and uses a DFA for pipeline modeling. Patch by Sergei Larin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9a5c0e8d9378d11cb5250265cf521db32968a56e |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the eh.exception and eh.selector intrinsics. Also remove a hack to copy over the catch information. The catch information is now tacked to the invoke instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 |
|
20-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
More dead code removal (using -Wunreachable-code) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9cf37e8b48732fccd4c301ed51aafed7074bd84e |
|
19-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a RegisterMaskSDNode class. This SelectionDAG node will be attached to call nodes by LowerCall(), and eventually becomes a MO_RegisterMask MachineOperand on the MachineInstr representing the call instruction. LowerCall() will attach a register mask that depends on the calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f0a95356d649dc0fb65691c4acebee450f3529b4 |
|
12-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Allow targets to select source order pre-RA scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4bf76e0e28c2cc358e1106b64cad2fa59714df53 |
|
07-Jan-2012 |
Chad Rosier <mcrosier@apple.com> |
Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2d24e2a396a1d211baaeedf32148a3b657240170 |
|
20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
34706936412b9e9ff73511fed58e97bf6e100e69 |
|
18-Dec-2011 |
Joerg Sonnenberger <joerg@bec.de> |
Allow inlining of functions with returns_twice calls, if they have the attribute themselve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0508d047fefef36d4f943ee13c82c18cf3a943ab |
|
15-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Update DebugLoc while merging nodes at -O0. Patch by Kyriakos Georgiou! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f2a745efe50dfd57f0e83e5f3ed964611cba6077 |
|
13-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Guard "exhastive" fast-isel output with -fast-isel-verbose2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
243eb9ecbbc6775e346e94025bd255bbceac9fca |
|
08-Dec-2011 |
Owen Anderson <resistor@mac.com> |
Enhance both TargetLibraryInfo and SelectionDAGBuilder so that the latter can use the former to prevent the formation of libm SDNode's when -fno-builtin is passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
73e08d3507d9ca22d89886a7d7e1e4e9278bee98 |
|
08-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Add rather verbose stats for fast-isel failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd |
|
07-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add bundle aware API for querying instruction properties and switch the code generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7c2a4a30e0e16762c75adacebd05ec9fcbccf16b |
|
06-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
First chunk of MachineInstr bundle support. 1. Added opcode BUNDLE 2. Taught MachineInstr class to deal with bundled MIs 3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs 4. Taught MachineBasicBlock methods about bundled MIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 |
|
02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f91488cc1027267fa21665818d3c90bb8b2a25ce |
|
16-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
Fix the stats collection for fast-isel. The failed count was only accounting for a single miss and not all predecessor instructions that get selected by the selection DAG instruction selector. This is still not exact (e.g., over states misses when folded/dead instructions are present), but it is a step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a7b0cb759433c715065440ee2a963a04db7f2b0b |
|
15-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove all remaining uses of Value::getNameStr(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
501852423d34578bc41a745681783b04124dd0db |
|
12-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't try to form pre/post-indexed loads/stores until after LegalizeDAG runs. Fixes PR11029. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d5333d6922fa5ce8954df600a61605e4ca1d92f6 |
|
24-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Delete the Latency scheduling preference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3c5e60994f53eef2808a33b5ca6c3dffc2168054 |
|
17-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Correct over-zealous removal of hack. Some code want to check that *any* call within a function has the 'returns twice' attribute, not just that the current function has one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
728662f9e869251ff9b5a847b0cb0daa99d1d250 |
|
17-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Now that we have the ReturnsTwice function attribute, this method is obsolete. Check the attribute instead. <rdar://problem/8031714> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
30e6740f2e3d518ce1cfcd484ef728ac5764a645 |
|
06-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Modify the mapping from landing pad to call sites to accept more than one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6f500541eac11413364f1d79320a2307079d3bbd |
|
06-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
Small refactoring. Cache the FunctionInfo->MBB into a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3be654f8082dcbdff011a6716a7c90486e28fc9e |
|
21-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Lower ARM adds/subs to add/sub after adding optional CPSR operand. This is still a hack until we can teach tblgen to generate the optional CPSR operand rather than an implicit CPSR def. But the strangeness is now limited to the selection DAG. ADD/SUB MI's no longer have implicit CPSR defs, nor do we allow flag setting variants of these opcodes in machine code. There are several corner cases to consider, and getting one wrong would previously lead to nasty miscompilation. It's not the first time I've debugged one, so this time I added enough verification to ensure it won't happen again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
83a8031336a1155e6b0c3e9a84164324e08d1c8b |
|
20-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Restore hasPostISelHook tblgen flag. No functionality change. The hook makes it explicit which patterns require "special" handling. i.e. it self-documents tblgen deficiencies. I plan to add verification in ExpandISelPseudos and Thumb2SizeReduce to catch any missing hasPostISelHooks. Otherwise it's too fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4815d56bb2c356a610f46753c5f1cefafa113b21 |
|
20-Sep-2011 |
Andrew Trick <atrick@apple.com> |
ARM isel bug fix for adds/subs operands. Modified ARMISelLowering::AdjustInstrPostInstrSelection to handle the full gamut of CPSR defs/uses including instructins whose "optional" cc_out operand is not really optional. This allowed removal of the hasPostISelHook to simplify the .td files and make the implementation more robust. Fixes rdar://10137436: sqlite3 miscompile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3af7a67629292840f0dbae8fad4e333b009e69dd |
|
20-Sep-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
37fefc20d3a1e3934a377567d54a141f67752227 |
|
30-Aug-2011 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to r138791. Add a instruction flag: hasPostISelHook which tells the pre-RA scheduler to call a target hook to adjust the instruction. For ARM, this is used to adjust instructions which may be setting the 's' flag. ADC, SBC, RSB, and RSC instructions have implicit def of CPSR (required since it now uses CPSR physical register dependency rather than "glue"). If the carry flag is used, then the target hook will *fill in* the optional operand with CPSR. Otherwise, the hook will remove the CPSR implicit def from the MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4477d691ed9fa63f051986dcb98e358054c8281f |
|
23-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
A landingpad instruction is neither folded nor dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1f6a329f79b3568d379142f921f59c4143ddaa14 |
|
12-Aug-2011 |
Duncan Sands <baldrick@free.fr> |
Silence a bunch (but not all) "variable written but not read" warnings when building with assertions disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f4ea68fa5a85d3e883cf35075133e64de4dfc046 |
|
11-Aug-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR10605 / rdar://9930964 by adding a pretty scary missed check. It's somewhat surprising anything works without this. Before we would compile the testcase into: test: # @test movl $4, 8(%rdi) movl 8(%rdi), %eax orl %esi, %eax cmpl $32, %edx movl %eax, -4(%rsp) # 4-byte Spill je .LBB0_2 now we produce: test: # @test movl 8(%rdi), %eax movl $4, 8(%rdi) orl %esi, %eax cmpl $32, %edx movl %eax, -4(%rsp) # 4-byte Spill je .LBB0_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
497a397f3e4edeb102bb2e2509a3795feafaf742 |
|
19-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Revert r135423. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1360bc8eb029d51d426c77c4b1410849ff308893 |
|
18-Jul-2011 |
Devang Patel <dpatel@apple.com> |
During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases. [take 2] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
272511f518127aae8c96935689b5607455542863 |
|
30-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Revert r133953 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e837dead3c8dc3445ef6a0e2322179c57e264a13 |
|
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
016c5829a5dacc3b28cb264b4b6d166552e3d568 |
|
28-Jun-2011 |
Devang Patel <dpatel@apple.com> |
During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7cc2b07437a1243c33324549a1904fefc5f1845e |
|
16-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Introduce MachineBranchProbabilityInfo class, which has similar API to BranchProbabilityInfo (expect setEdgeWeight which is not available here). Branch Weights are kept in MachineBasicBlocks. To turn off this analysis set -use-mbpi=false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8a115d5bf42af0a3b4b87d2937502a66c63ff743 |
|
25-May-2011 |
Devang Patel <dpatel@apple.com> |
Remove unused statistical counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
233857537f61a8f4ab93624986676c25b2271bc7 |
|
23-May-2011 |
Devang Patel <dpatel@apple.com> |
Preserve debug info during iSel by keeping DanglingDebugInfoMap live until end of function. Patch by Micah Villmow git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5a4b3d8c8f52ee225ffc65c7d6cebc78b1ec7808 |
|
20-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix PR9955 by only attaching load memory operands to load instructions and similarly for stores. Now "make check" passes with the MachineVerifier forced on with the VerifyCoalescing option! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9c4dae6b0bd1b4667b7a6ce5d804f60615bac639 |
|
18-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make fast-isel miss counting in -stats and -fast-isel-verbose take terminators into account; since there are many fewer isel misses with recent changes, misses caused by terminators are more significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
975716af1b9a09274df6c2d92683449015bd8564 |
|
17-May-2011 |
Dan Gohman <gohman@apple.com> |
Delete unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
62427ae8d311d3dda8f5257ddf34d13c19c214bb |
|
16-May-2011 |
Jim Grosbach <grosbach@apple.com> |
Track how many insns fast-isel successfully selects as well as how many it misses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0e00c6c561181be7e9cc75ad2fee9cd4cbbfca1e |
|
16-May-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't do tail calls in a function that call setjmp. The stack might be corrupted when setjmp returns again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8265e6ab4fb5ff178266d960c5d894f5828bb8ce |
|
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Use array_lengthof. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6005b875b09ed1b3c5bc90a304db307b67886f75 |
|
05-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Small syntax cleanup; we don't need to #define constants in C++. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b686af053e6544191420978f6a3adc7e74ab0192 |
|
22-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Recommit the fix for rdar://9289512 with a couple tweaks to fix bugs exposed by the gcc dejagnu testsuite: 1. The load may actually be used by a dead instruction, which would cause an assert. 2. The load may not be used by the current chain of instructions, and we could move it past a side-effecting instruction. Change how we process uses to define the problem away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
63c21deee15516723d3ebcf70ba34bb07116e974 |
|
21-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Revert r1296656, "Fix rdar://9289512 - not folding load into compare at -O0...", which broke a couple GCC test suite tests at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
37d38bfbbf2b8db2c75b2edbd8cd30c51746fd5d |
|
19-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
SelectBasicBlock is rather slow even when it doesn't do anything; skip the unnecessary work where possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
685090f5988a03da1a515493bad1e592d26b9956 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix an oversight which caused us to compile the testcase (and other less trivial things) into a dummy lea. Before we generated: _test: ## @test movq _G@GOTPCREL(%rip), %rax leaq (%rax), %rax ret now we produce: _test: ## @test movq _G@GOTPCREL(%rip), %rax ret This is part of rdar://9289558 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fd3f6351035f6bf1a6bfc851da00c0fb24d6db09 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix rdar://9289512 - not folding load into compare at -O0 The basic issue here is that bottom-up isel is matching the branch and compare, and was failing to fold the load into the branch/compare combo. Fixing this (by allowing folding into any instruction of a sequence that is selected) allows us to produce things like: cmpb $0, 52(%rax) je LBB4_2 instead of: movb 52(%rax), %cl cmpb $0, %cl je LBB4_2 This makes the generated -O0 code run a bit faster, but also speeds up compile time by putting less pressure on the register allocator and generating less code. This was one of the biggest classes of missing load folding. Implementing this shrinks 176.gcc's c-decl.s (as a random example) by about 4% in (verbose-asm) line count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8bdc251dc5392fdf4854dcf588d73927d6ef64b3 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
split a complex predicate out to a helper function. Simplify two for loops, which don't need to check for falling off the end of a block *and* end of phi nodes, since terminators are never phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a2f45291e1a50a571a15bbf4da38a5f42a2424ef |
|
23-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Added block number and name to isel debug output. I'm tired of doing this manually for each checkout. If anyone knows a better way debug isel for non-trivial tests feel free to revert and let me know how to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9d40193d79052fb4ddd0f667f0fe47f07922c72a |
|
01-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2d76c84514216f51526f2be123315f585995d860 |
|
01-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Generalize the register matching code in DAGISel a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8ca814c4e0a39e1fcac023f0fb014917da07a796 |
|
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Merge information about the number of zero, one, and sign bits of live-out registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
324a24f6aa5d6752c57c39e1e19f00b8c8a4ceec |
|
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add a mechanism for invalidating the LiveOutInfo of a PHI, and use it whenever a block is visited before all of its predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a46cd97818ac6fa336b093adecf2006fb041ca1c |
|
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Track blocks visited in reverse postorder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e1497b979166765d97c91813a8e830a1ab8fbe12 |
|
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Refactor the LiveOutInfo interface into a few methods on FunctionLoweringInfo and make the actual map private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2dbe2850d019d3d25ec760f34de70ef6c9ac5747 |
|
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Have isel visit blocks in reverse postorder rather than an undefined order. This allows for the information propagated across basic blocks to be merged at phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4ecc82e592745d6995db83ea158b3c15011a84f8 |
|
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Roll out r126169 and r126170 in an attempt to fix the selfhost bot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
92efda7e9183ae16bde7a3ad96b682e779d89cf3 |
|
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Merge information about the number of zero, one, and sign bits of live-out registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
63a8dae64dea89ae4a6f93ee17cf3fbbc2815084 |
|
22-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Have isel visit blocks in reverse postorder rather than an undefined order. This allows for the information propagated across basic blocks to be merged at phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
68e6beeccc0b9ac2e8d3687a8a5b7d4b172edca1 |
|
22-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns." In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e9a7ea68653689966417443b8ac2528c1d9d3ccf |
|
31-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Keep track of incoming argument's location while emitting LiveIns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b99fdee325fe677081dc27bb7d719518452f3256 |
|
16-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
reapply my fix for PR8961 with a tweak to properly handle multi-instruction sequences like calls. Many thanks to Jakob for finding a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ca5f61676956cff088c225c3c166a589410b3101 |
|
14-Jan-2011 |
Dan Gohman <gohman@apple.com> |
Delete an assignment to ThisBB which isn't needed, and tidy up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
67d98916900a68b5902428e39f9c865c8d02c1bf |
|
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
Set the insertion point correctly for instructions generated by load folding: they should go *before* the new instruction not after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
358de24dc121cd21911f3248b599178c86e9b467 |
|
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an IndexedMap for LiveOutRegInfo to hide its dependence on TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c36b7069b42bece963b7e6adf020353ce990ef76 |
|
08-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Do not model all INLINEASM instructions as having unmodelled side effects. Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d08e5b48bc5d9177b1d70a1980a7805420a99085 |
|
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Avoid zero extend bit test operands to pointer type if all the masks fit in the original type of the switch statement key. rdar://8781238 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
762a17a040f2e5c7f76b6b85d853cca454289e71 |
|
05-Jan-2011 |
Eric Christopher <echristo@apple.com> |
80-cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2da8bc8a5f7705ac131184cd247f48500da0d74e |
|
24-Dec-2010 |
Andrew Trick <atrick@apple.com> |
Various bits of framework needed for precise machine-level selection DAG scheduling during isel. Most new functionality is currently guarded by -enable-sched-cycles and -enable-sched-hazard. Added InstrItineraryData::IssueWidth field, currently derived from ARM itineraries, but could be initialized differently on other targets. Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is active, and if so how many cycles of state it holds. Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry into the scheduler's available queue. ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to get information about it's SUnits, provides RecedeCycle for bottom-up scheduling, correctly computes scoreboard depth, tracks IssueCount, and considers potential stall cycles when checking for hazards. ScheduleDAGRRList now models machine cycles and hazards (under flags). It tracks MinAvailableCycle, drives the hazard recognizer and priority queue's ready filter, manages a new PendingQueue, properly accounts for stall cycles, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6e8f4c404825b79f9b9176483653f1aa927dfbde |
|
24-Dec-2010 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
29d8f0cae425f1bba583565227eaebf58f26ce73 |
|
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
flags -> glue for selectiondag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4359be0328a91971c486b06892c742de1fa0f2b |
|
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
sdisel flag -> glue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1b4eafbfec976f939ec0ea3e8acf91cef5363e3 |
|
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for something that just glues two nodes together, even if it is sometimes used for flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5df1578decc8b05ffaec0e7f5d1532234bc1be19 |
|
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
improve "cannot yet select" errors a trivial amount: now they are just as useless, but at least a bit more gramatical git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
96ba57fddac5999ef6d4009d8baef24607da6221 |
|
19-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8642: if a critical edge has a PHI value that can trap, isel is *required* to split the edge. PHI values get evaluated on the edge, not in their predecessor block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
04d14ff349d5d807afbc4777d85ae1eaa7e4c8f7 |
|
20-Nov-2010 |
Bill Wendling <isanbard@gmail.com> |
Check for _setjmp too, because it's also used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cdfad36b401be6fc709ea4051f9de58e1a30bcc9 |
|
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Simplify uses of MVT and EVT. An MVT can be compared directly with a SimpleValueType, while an EVT supports equality and inequality comparisons with SimpleValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a568d66512759f93e0d37af7c8f905603dd27449 |
|
26-Oct-2010 |
Nick Lewycky <nicholas@mxc.ca> |
For statistics that are only used in functions declared in !NDEBUG, wrap the declarations in !NDEBUG to avoid -Wunused-variable warnings. Patch by Matt Beaumont-Gay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
df8370bd70c228036f887a3f500ad3e79bc657b9 |
|
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Simplify. Do not count use of sdisel for single call instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
948f7d0216cbd847a68fc6aaf391f01816a02494 |
|
25-Oct-2010 |
Devang Patel <dpatel@apple.com> |
Add counters to count basic blocks and machine basic blocks with out of order line number info. Add counters to count how many basic blocks are entirely selected by fastisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
19e57025d458d3cb50804fd821fd89b868a819bd |
|
23-Oct-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Move the remaining attribute macros to systematic names based on the attribute name and prefixed with 'LLVM_'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
081c34b725980f995be9080eaec24cd3dfaaf065 |
|
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2622f4622c36ec9924fb908085154ffdd7174aff |
|
30-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
When isel is emitting instructions for an x86 target without CMOV, the CFG is edited during emission. If the basic block ends in a switch that gets lowered to a jump table, any phis at the default edge were getting updated wrong. The jump table data structure keeps a pointer to the header blocks that wasn't getting updated after the MBB is split. This bug was exposed on 32-bit Linux when disabling critical edge splitting in codegen prepare. The fix is to uipdate stale MBB pointers whenever a block is split during emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
df30bdb3a735a81b4182d80b870bc39846824396 |
|
23-Sep-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Fix VS 2010 build. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d847bc20b89679279e75412ddc51dc1d299da942 |
|
22-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
Rework passing parent pointers into complexpatterns, I forgot that complex patterns are matched after the entire pattern has a structural match, therefore the NodeStack isn't in a useful state when the actual call to the matcher happens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
44cfe14445bcdd591d4f2ed59fe73582360bd8c9 |
|
21-Sep-2010 |
Devang Patel <dpatel@apple.com> |
If only user of a vreg is an copy instruction to export copy of vreg out of current basic block then insert DBG_VALUE so that debug value of the variable is also transfered to new vreg. Testcase is in r114476. This fixes radar 8412415. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
77bd88cda5e007c6f4e042fc6b6104c9ae62083b |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
correct this logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
78d3af47f532d67611e7d625b505fa832d713a26 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
just like they can opt into getting the root of the pattern being matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
beac75da3784929aee9f0357fc5cd76d49d6c3d7 |
|
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://6653118 - fastisel should fold loads where possible. Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6dabd9dba013173460c0b95e6b41b5776c66270d |
|
26-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
70017e44cdba1946cc478ce1856a3e855a767e28 |
|
24-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add an ILP scheduler. This is a register pressure aware scheduler that's appropriate for targets without detailed instruction iterineries. The scheduler schedules for increased instruction level parallelism in low register pressure situation; it schedules to reduce register pressure when the register pressure becomes high. On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2 by 16%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
96f1d8ebdd33b3f9bdb3b1163f36072c68599f42 |
|
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
mass elimination of reliance on automatic iterator dereferencing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e667e0172346773cb5718f694efa93ea49114c7b |
|
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use the source-order scheduler instead of the "fast" scheduler at -O0, because it's more likely to keep debug line information in its original order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
84023e0fbefc406a4c611d3d64a10df5d3a97dd7 |
|
10-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reapply bottom-up fast-isel, with several fixes for x86-32: - Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8886c495a33703d8bd8319d16b62645cee4dd546 |
|
09-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Clarify what mysterious check means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
02266e29f9250d74c5ec720aff23add3410ae920 |
|
09-Jul-2010 |
Bob Wilson <bob.wilson@apple.com> |
--- Reverse-merging r107947 into '.': U utils/TableGen/FastISelEmitter.cpp --- Reverse-merging r107943 into '.': U test/CodeGen/X86/fast-isel.ll U test/CodeGen/X86/fast-isel-loads.ll U include/llvm/Target/TargetLowering.h U include/llvm/Support/PassNameParser.h U include/llvm/CodeGen/FunctionLoweringInfo.h U include/llvm/CodeGen/CallingConvLower.h U include/llvm/CodeGen/FastISel.h U include/llvm/CodeGen/SelectionDAGISel.h U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/CallingConvLower.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp U lib/CodeGen/SelectionDAG/FastISel.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp U lib/CodeGen/SelectionDAG/InstrEmitter.cpp U lib/CodeGen/SelectionDAG/TargetLowering.cpp U lib/Target/XCore/XCoreISelLowering.cpp U lib/Target/XCore/XCoreISelLowering.h U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bf87e2491789d6ff788629e22e93d0c1ca02ae85 |
|
09-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c930cbcada7c62bb474019f4ce21bd6387d1c3f5 |
|
09-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Extension of r107506. Make sure that we don't mark a function as having a call if the inline ASM doesn't need a stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f59514152511694d46ca8b8d2db466d256ab5759 |
|
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert 107840 107839 107813 107804 107800 107797 107791. Debug info intrinsics win for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
61b7cea126a0178045839093c98f7a75b6620b72 |
|
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix -fast-isel-abort to check the right instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4df83ed159f21fdf73a57729c3e9d8c9fcd73607 |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Implement bottom-up fast-isel. This has the advantage of not requiring a separate DCE pass over MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5fc3da0665c6dab92a4f21f34e75f9b929dc88d5 |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Update the insert position after scheduling, which may change the position when emitting multiple blocks when executing a custom inserter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eabaed26c3921453d824b71a93557c32132f4fdd |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Give FunctionLoweringInfo an MBB member, avoiding the need to pass it around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4160c3434b08288d1f79f1acbe453d1b9610b22 |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Simplify FastISel's constructor by giving it a FunctionLoweringInfo instance, rather than pointers to all of FunctionLoweringInfo's members. This eliminates an NDEBUG ABI sensitivity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4c3fd9f92f89810d659973d2666ab729758de64a |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will allow target-specific fast-isel code to make use of it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c9af33c6854afe7b082af2d892ec5f05dfa383c7 |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext. SelectBasicBlock doesn't needs its BasicBlock argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d9cb7ca388c400e3c7a509c00d4cf63031de0dde |
|
04-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Proper indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1e309eb4862459a76445942ba4dafc433b6f317 |
|
02-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Propagate the AlignStack bit in InlineAsm's to the PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
89496d0eb73ab8771b27b3d9c1db6492d8eefc3a |
|
02-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Rename CreateReg to CreateRegs, and MakeReg to CreateReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
63b95a6f820d768797b28bbfd5c12fabf74b7f1d |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Temporarily disable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c6f00e701e744fdf73508d47ff0cc75817ba8474 |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use FuncInfo's isExportedInst accessor method instead of doing the work manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ffda6bac113d4c079b534b1bfa7aea5498ee3e83 |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Rename CreateRegForValue to CreateReg, and change its argument from a Value to a Type, because it doesn't actually care about the Value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
20d4be151b54feb18aa1e5cc04033a4aa64137ae |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Enable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4e39e9da0f3a435445261d0f796bb0913f3c2bf0 |
|
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r106634, now that the bug it exposed is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cbe762b5d165c565feb98b745e93b71d208a1e36 |
|
23-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
927f866105fa29feb32c050ee823d60c2509ec76 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
03c3dc7b6828d48a9f3be50896b3390a696caa64 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Give NamedRegionTimer an Enabled flag, allowing all its clients to switch from this: if (TimePassesIsEnabled) { NamedRegionTimer T(Name, GroupName); do_something(); } else { do_something(); // duplicate the code, this time without a timer! } to this: { NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled); do_something(); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8a7f7426eeb18fef58c3471db23fc829b67bc350 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass, which is faster, simpler, and less surprising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7451d3e09d26115195280ba36f686a0a90815089 |
|
29-May-2010 |
Dan Gohman <gohman@apple.com> |
SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set doesn't needs its EnableFastISel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
804a231dd5b064006a252f67fe27abced0827ac8 |
|
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Add FIXME comment to remove this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8d717c7d999231c8c54601720b08cd3eecf6d518 |
|
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Add "setjmp_syscall", "savectx", "qsetjmp", "vfork", "getcontext" to the list of usual suspects that could "return twice". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
394427b014a7126e56f3ee411993f08677d93c83 |
|
26-May-2010 |
Devang Patel <dpatel@apple.com> |
Update debug info when live-in reg is copied into a vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9af7e9a1b5fb04ba677059ada9290cd3864523b2 |
|
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Move the check for "calls setjmp" to SelectionDAGISel so that it can be used by more than just the stack slot coloring algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
174e597d466547d34cf8fcd2a95976e0cf5ebbac |
|
26-May-2010 |
Eric Christopher <echristo@apple.com> |
Temporarily revert r104655 as it's breaking the bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
be22683202731127a5128db8be404edcee91defd |
|
26-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Dale and Evan suggested putting the "check for setjmp" much earlier in the machine code generation. That's a good idea, so I made it so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
15a16def6e70c8f7df1023da80ceb89887203b40 |
|
20-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add a hybrid bottom up scheduler that reduce register usage while avoiding pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot of long latency instructions so a strict register pressure reduction scheduler does not work well. Early experiments show this speeds up some NEON loops by over 30%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
211ffa13519cadfb7f9baf4c8447fa055bf38fe8 |
|
19-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
53f7602b61157ed56ccbf91379c188c55235f619 |
|
18-May-2010 |
Bill Wendling <isanbard@gmail.com> |
- Set the "HasCalls" flag after instruction selection is finished. - Change the logic DisableFramePointerElim() to check for the -disable-non-leaf-fp-elim before -disable-fp-elim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b92187a4103dca24c3767c380f63593d1f6161a7 |
|
14-May-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe what the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1ced259b5617e9c15fcafd47e090c22e2702062 |
|
04-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
Instruction selection optimizations may have moved the def of a function argument out of the entry block. rdar://7937489 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d725f04ff81db0e61baa153bf21ca2dd08838244 |
|
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Remove the code for special-casing byval for fast-isel. SelectionDAG handles argument lowering anyway, so there's no need for special casing here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1b79a2ff547a5ead0eef933bb02f51b3a2f4cc1c |
|
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
95140a4cc168bb75a54a434e3e53f9060742dc41 |
|
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Reorgnaize more switch code lowering to clean up some tricky code, and to eliminate the need for the SelectionDAGBuilder state to be live during CodeGenAndEmitDAG calls. Call SDB->clear() before CodeGenAndEmitDAG calls instead of before it, and move the CurDAG->clear() out of SelectionDAGBuilder, which doesn't own the DAG, and into CodeGenAndEmitDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
af1d8ca44a18f304f207e209b3bdb94b590f86ff |
|
01-May-2010 |
Dan Gohman <gohman@apple.com> |
Get rid of the EdgeMapping map. Instead, just check for BasicBlock changes before doing phi lowering for switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e7fd7c688689a0f51caf350af47c87fb6a915b92 |
|
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove this debug output. The MachineFunction will be printed once all of instruction selection is done; it's confusing to see parts of it printed, while other parts are omitted, along the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a36acad67ddade353a79a6b1a7b43bfaa01e86e1 |
|
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Re-enable 102565 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
16e4ace95196c2b34246746b7481a8de3d715c19 |
|
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Temporarily disable my changes to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ee1d91a8301f91318e1aeed55c35ba5f6ca0b913 |
|
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid emitting a dbg_value machineinstr that's not going to be inserted into entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1deef27b0ad538e5017675cf1e085002973bbbb2 |
|
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Check Reg against zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2ad0fcf794924f618a7240741cc14a39be99d0f2 |
|
29-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e8c92dd439581bec7e3516cbdbea74e2e60fe7f0 |
|
23-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISel itself too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c105a2b5b7d8969e78bd4b203e980dced8a1c689 |
|
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks down into SelectionDAGBuilder itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f81eca0ab908fdcf98ae0efaa75acccc8ba40dc2 |
|
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISel and into SelectionDAGBuilder and FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
620427d5a165d98d33ad6a5be2d01c3e8525c2f6 |
|
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move PHINodesToUpdate out of SelectionDAGBuilder and into FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f0757b0edc1ef3d1998485d3f74cadaa3f7180a0 |
|
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers on TargetMachine and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
92884f7ee54186b136a1ade7fa0194097f225c81 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink the CopyToExportRegsIfNeeded calls out of SelectionDAGISel into SelectionDAGBuilder. This avoids a separate pass over the instructions, and has the side effect of providing debug location information to the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ba5be5c07bb19dcf484e3aa40cd139dd07c10407 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Don't send PHI nodes down to SelectionDAGBuilder of FastISel, since they end up doing nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a9056dbec17fe2d83d61b934ccb3f8088eca5d08 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove this debug output; it isn't that useful, and it's incomplete in the case where a basic block is split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8ba3aa7f9c5048c31172788f98ad2b90ffad565a |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink DebugLoc handling out of SelectionDAGISel into FastISel and SelectionDAGBuilder, where it doesn't have to be as complicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
084751cd16c3b8017b5a237bd2575b65a6543f79 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove MachineFunction's DefaultDebugLoc member, and make DwarfDebug.cpp responsible for figuring out what that's supposed to be on its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a9a3321938aac13477bdc53af0018bce88b45d78 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the removal of SelectionDAGISel's BB, with a fix for the case where multiple blocks are emitted; functions which do this need to return the new BB so that their callers can stay current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
68b7960c1a09b047dbac8eab185d2ca0dd7a2134 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Revert 101825, which is causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
35bb85b7ee108a265a20686e97d1b011f4ab5ce9 |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate SelectionDAGISel's "current block" member. Just pass it as an argument to things that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
99be8ae3898d87373ef0c8f1159b287e28a8d81b |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the CurMBB member from SelectionDAGBuilder. For places that need it, just pass around the parent block of the current instruction explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
50d2b1ac029d63500ea9b9347561b1454fa6ed6a |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Give SelectionDAG a TargetMachine too, rather than having it fetch one from the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
55e59c186303ff02c0be7429da3b1b36c347f164 |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Code that needs a TargetMachine should have access to one directly, rather than just getting one through a TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d858e90f039f5fcdc2fa93035e911a5a9505cc50 |
|
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const qualifiers with TargetLowering. This eliminates several const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e5b51ac7708402473f0a558f4aac74fab63d4f7e |
|
17-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
More work to allow dag combiner to promote 16-bit ops to 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
33b7a291aa1bd477bc09e3ef5fccb76249502a5e |
|
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Avoid creating virtual registers for unused values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a44e522b7df67e4a895850b6813e980c3321fb78 |
|
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f89d1dc9b77ee006324653f70496d29ac3d3bc6c |
|
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Refine further the scope where the global DebugLoc value is active. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b35798347ea87b8b6d36155b211016a7769f01ab |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of namespace polution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ae541aad5c36cb3e4256514447d1f81e253079c7 |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers for LLVM IR pointers in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
46510a73e977273ec67747eb34cbdb43f815e451 |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6a732b5a669c85505a5785ee7ccb72eb9d1a4e6d |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete unused arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2520864773dcb73d76d297605f4bc41c0cf3fa39 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Factor out EH landing pad code into a separate function, and constify a bunch of stuff to support it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7f6b8b8891adedce162ce23f5b540f98af202b22 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reset the debug location even if the instruction was a terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c21a2dc8dfc7edd7722a09b61a0afdd3eaaa8637 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5dc44335b19dde981e4ad69ab7a650269460ed3c |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Clear the FunctionLoweringInfo object before doing other things that don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0e026729aef35523e4f8d6124a569dceb4286bbb |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move this assert out of SelectionDAGISel into FunctionLoweringInfo, and drop the redundant #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
046fe6b6ba9851d3b8fed164493a54db3ac107e6 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b13033f61c897224a0be2784faa721ff294c5254 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for initialing the entry block livein set out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c0fb65da040668df543db514f05e4be571edf700 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Reorgnaize this code to be more tidy and readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
441516fb3def0125765532e4fe1b507cc89998e9 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
98708260f55cab997a5db77e930a2bd35f4172aa |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the code for emitting livein copies out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
de4c0a7da7cfa1693ad9e6e09969003b610af08a |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Sink landing-pad marking code out of SelectionDAGISel::runOnMachineFunction into FunctionLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
87d677c1856bfdcb91d9daeb69dc5f261c73851e |
|
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
75361b69f3f327842b9dad69fa7f28ae3b688412 |
|
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename llvm::llvm_report_error -> llvm::report_fatal_error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
decc2671516e6c52ee2f29f7746f8d02753845ea |
|
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Three changes: 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
de6e783b2490447866b592cd39855e6f4d25efff |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some redundant MMI arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ed3a8067a60ecf2c215e77327a57904c3ebc3355 |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
unthread MMI from FastISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ea761868b5e4c0166721daf259f86c3816b44f42 |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
trim some spurious references to DwarfWriter. SDIsel really doesn't need it anymore, so don't addRequire it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ba79d72eab446e64d360e8263d77732b5e13d556 |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
selection dag doesn't need DwarfWriter, remove some tendrils. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d850ac79b57e6e0bf68ee93a94d0b3dcd9f6ca35 |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fastisel doesn't need DwarfWriter, remove some tendricles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4f2bb08de92ccec21cbb3d0a9518384b0173660 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop using DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
de4845c163a5847c82d7ce10ed0c320098bce6e0 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
23dbf6683b5de64bd0b2f05a5a311a98480b3a72 |
|
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
use the optimized debug info apis in sdisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bed993d8a4ede75a24a142437057b42498ce5b9f |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a statistic for the # times isel has to backtrack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
caa8870fe09f5526e611434b6bb9f7040c7dfa60 |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
finally remove the immAllOnesV_bc/immAllZerosV_bc patterns and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5d9a1bce83a18a4f972c5974fa9d7fa3c4de001f |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
comply with the wishes of a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b0e483e2c47c122f58cec4c83e37ceef92c36aef |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
now that (parallel) is gone and a variety of bugs in targets are cleaned up, we can remove an old fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
aa4e3391c8814c6ce0bbc530ea4d5905414b2763 |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
856fb395e46a8d485081acbf11928047d852c636 |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't add nodes to the now-dead nodes list multiple times, this can cause a crash on crazy situations in msp430 when morph-node-to is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
19e37cbf4fa202fc7ca1d769e5ce476f83290dd5 |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
don't add flag nodes with chain results to the NowDeadNodes list multiple times when MorphNodeTo can't be applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a6f8693385636b18ae05e30f5017393ad1309bb2 |
|
27-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve -debug-only=isel comments for cases when we don't enter a scope due to obviously false predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d5d5a3dcbaa4e7f394ba045e2d7d0ec3aa76f50c |
|
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Change tblgen to emit FOOISD opcode names as two bytes instead of one byte. This is important because we're running up to too many opcodes to fit in a byte and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE making the numbering sparse. This just bites the bullet and bloats out the table. In practice, this increases the size of the x86 isel table from 74.5K to 76K. I think we'll cope :) This fixes rdar://7791648 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
90a48adf9cbea48f5318a5eb778056b4413e2ec0 |
|
15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c4a3f23b9251b07785cca646ad27b426dfa23230 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix ShrinkDemandedOps to not leave dead nodes around, fixing PR6607 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
25e0ab9ae5507b0589be852f54693dec66796f0e |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite ShrinkDemandedOps to be faster and indent less, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
552186dfd3238a43655ffda1b5adadec461c9886 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make -view-isel-dags print after the 'ShrinkDemandedOps' pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3b9d6216a41cfd43759e787db26d797e1f0ba0a8 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix AsmPrinter::GetBlockAddressSymbol to always return a unique label instead of trying to form one based on the BB name (which causes collisions if the name is empty). This fixes PR6608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7561d480953e0a2faa4af9be0a00b1180097c4bd |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
19b3826d0f0e299447d0a1c47d4fb2899d32d31f |
|
09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Attempt to make this debug output meaningful, both in the case of multibyte opcodes and in the case of multiple scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8f03d751619b72bffebbcd2161dcdaa4578a31e0 |
|
09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Print the correct index in the "match failed at index" message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
580bba2b0dd2173c899699a87e109bfd1482c001 |
|
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid creating bad PHI instructions when BR is being const-folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
18fdabadca110671b436de52fe7bd492ad49e656 |
|
05-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR6497, a bug where we'd fold a load into an addc node which has a flag. That flag in turn was used by an already-selected adde which turned into an ADC32ri8 which used a selected load which was chained to the load we folded. This flag use caused us to form a cycle. Fix this by not ignoring chains in IsLegalToFold even in cases where the isel thinks it can. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9bbcd5ee5b9a34f82d7d0570256ff4b4f53fabe9 |
|
05-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline a small function with one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c19ae9d91d30bc008e0be5f5d4727f333199f64c |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a statistic for # times fastisel fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
57bf8a483edf97589c3e6085721e72fc187677a8 |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the new isel matcher to emit ComplexPattern matches as the very last thing before node emission. This should dramatically reduce the number of times we do 'MatchAddress' on X86, speeding up compile time. This also improves comments in the tables and shrinks the table a bit, now down to 80506 bytes for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2c4afd1d8e3cd7cdf47a163deaf345a747541367 |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline CannotYetSelectIntrinsic into CannotYetSelect and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
da828e3c8c869c0a62fefbd4c14811ca6fb4913d |
|
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some of the more obscure predicate types to the Scope accelerator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1b7c7d476a2f30f035c527cfe8e14c6c6255f07 |
|
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
speed up scope node processing: if the first element of a scope entry we're about to process is obviously going to fail, don't bother pushing a scope only to have it immediately be popped. This avoids a lot of scope stack traffic in common cases. Unfortunately, this requires duplicating some of the predicate dispatch. To avoid duplicating the actual logic I pulled each predicate out to its own static function which gets used in both places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cfe2eab7446dedc471592fe702fefef783383171 |
|
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new SwitchTypeMatcher node (which is analogous to SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d1b738298359846b9cccaa0931e6ec1fc59a6d87 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix some issues in WalkChainUsers dealing with CopyToReg/CopyFromReg/INLINEASM. These are annoying because they have the same opcode before an after isel. Fix this by setting their NodeID to -1 to indicate that they are selected, just like what automatically happens when selecting things that end up being machine nodes. With that done, give IsLegalToFold a new flag that causes it to ignore chains. This lets the HandleMergeInputChains routine be the one place that validates chains after a match is successful, enabling the new hotness in chain processing. This smarter chain processing eliminates the need for "PreprocessRMW" in the X86 and MSP430 backends and enables MSP to start matching it's multiple mem operand instructions more aggressively. I currently #if out the dead code in the X86 backend and MSP backend, I'll remove it for real in a follow-on patch. The testcase changes are: test/CodeGen/X86/sse3.ll: we generate better code test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was miscompiling this before, we now generate correct code Convert it to filecheck while I'm at it. test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem folding to make anton happy. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
00592ec857b4c3f31b46412e2738924238c59983 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
run HandleMergeInputChains even if we only have one input chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
82dd3d38d9b3bd49f19b8230f39d33e8ee6d4055 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Fix the xfail I added a couple of patches back. The issue was that we weren't properly handling the case when interior nodes of a matched pattern become dead after updating chain and flag uses. Now we handle this explicitly in UpdateChainsAndFlags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
61c97f693216670cda554d287cd871fdea1b36f9 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
I was confused about this, it turns out that MorphNodeTo *does* delete ex-operands that become dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ff1e4db7896a8ccec74800d52a926118d025260 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
factor node morphing out to its own helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7c306da505e2d7f64e160890b274a47fa0740962 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Sink InstructionSelect() out of each target into SDISel, and rename it DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6183fbd7267a7de857e32a2106cfb46a219728f1 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Use the right induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c6d7ad3c7d83e9af29bf3ba3bf3280e72a952f98 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Rewrite chain handling validation and input TokenFactor handling stuff now that we don't care about emulating the old broken behavior of the old isel. This eliminates the 'CheckChainCompatible' check (along with IsChainCompatible) which did an incorrect and inefficient scan *up* the chain nodes which happened as the pattern was being formed and does the validation at the end in HandleMergeInputChains when it forms a structural pattern. This scans "down" the graph, which means that it is quickly bounded by nodes already selected. This also handles token factors that get "trapped" in the dag. Removing the CheckChainCompatible nodes also shrinks the generated tables by about 6K for X86 (down to 83K). There are two pieces remaining before I can nuke PreprocessRMW: 1. I xfailed a test because we're now producing worse code in a case that has nothing to do with the change: it turns out that our use of MorphNodeTo will leave dead nodes in the graph which (depending on how the graph is walked) end up causing bogus uses of chains and blocking matches. This is really bad for other reasons, so I'll fix this in a follow-up patch. 2. CheckFoldableChainNode needs to be improved to handle the TF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
319ef940303146dfb885794d21c98da1d5e84048 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6b30792d2d7d142b8192241e6232aee004f745fb |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
refactor some code out of OPC_EmitMergeInputChains into a new helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7390eebd49b786f3293d24f76fedb02fe183468c |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Accelerate isel dispatch for tables that start with a top-level OPC_SwitchOpcode to use a table lookup instead of having to go through the interpreter for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7d892d6e6d451e9a0d0f9db839a943a256126c05 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
some trivial microoptimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fa342faef9d1c89de356ed83a6c6529ed3e87610 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the CheckMultiOpcodeMatcher code and have each ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eb66921adb943ea841e72c8eee4777607c48b70e |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a new OPC_SwitchOpcode which is semantically equivalent to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
14df8dc680d40173f34d693f9dc451f8a30c907b |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate GetInt1/2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2a49d57d2d9dd19125a9ba302e883f6ba6c38b83 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
hoist the new isel interpreter out of DAGISelHeader.h (which gets #included into the middle of each target's DAGISel class) into a .cpp file where it is only compiled once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
da244a091dcde022ea4938793d81ee957903ed70 |
|
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug in findNonImmUse (used by IsLegalToFold) where nodes with no id's would cause early exit allowing IsLegalToFold to return true instead of false, producing a cyclic dag. This was striking the new isel because it isn't using SelectNodeTo yet, which theoretically is just an optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
409ac586e83525a760692cf0affb01f1c9efa594 |
|
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
sink special case "cannotyetselect" for intrinsics out of the tblgen splatted code into the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
014bf215c3457bb34fee348265e8f63a70b4d503 |
|
15-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Split SelectionDAGISel::IsLegalAndProfitableToFold to IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use. This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
046632f272b22a653c204c0ef56eb4076368d4bb |
|
10-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Now that ShrinkDemandedOps() is separated out from DAG combine. It sometimes leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
518bb53485df640d7b7e3f6b0544099020c42aa7 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
187361b056823df4ff292561fe47468dad956872 |
|
23-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove the '-disable-scheduling' flag and replace it with the 'source' option of the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also, keep track of the SDNode ordering by default. Eventually, we would like to make this ordering a way to break a "tie" in the scheduler. However, doing that now breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ce6715faa37b2e44edcf400084aa808ae30d7085 |
|
19-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some new debugging APIs to print out "raw" SelectionDAGs to make understanding CannotYTetSelect and other errors easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac931c011fae9392b5d68e763ec64ee25181c267 |
|
15-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some debug routines to SelectionDAG to dump full DAGs. print/dumpWithDepth allows one to dump a DAG up to N levels deep. dump/printWithFullDepth prints the whole DAG, subject to a depth limit on 100 in the default case (to prevent infinite recursion). Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly what the non-matching DAG looks like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f4549b02a7d9907d06e7fb8afefd129452d1f7c5 |
|
15-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
fix 80-column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
21c14e3649b3e2a70ac36ebb148f17648f10a2a9 |
|
12-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Update a partially obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dd437ba15e00d1a137e0c6e3ca1ff213ed6a2aa0 |
|
11-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid adding PHI arguments for a predecessor that has gone away when a BRCOND was constant folded. This fixes PR5980. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
54e146b935123d3d325e8eb30c2e1f2eca3377ac |
|
09-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Dan pointed out checking whether a node is dead by comparing its opcode to ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6f279e0bda35a35740cc8c5479d579890bc1d3f7 |
|
08-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
ReplaceAllUsesOfValueWith may delete other nodes that the one being replaced. Do not delete dead nodes again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7b1e2a50a51793428a792a15d2777a4c48e0db49 |
|
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use pop_back_val instead of back()+pop_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
54eb4c2991796c3014e831fc07e4a6c0a3df10f0 |
|
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d40d03e1bd1d51857fc2f9f9230e334c3a32b249 |
|
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach dag combine to fold the following transformation more aggressively: (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f012705c7e4ca8cf90b6b734ce1d5355daca5ba5 |
|
05-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1a053236f165ac60ee88edca370a732d278aa2c1 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eeb3a00b84b7767d236ec8cf0619b9217fc247b9 |
|
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Change SelectCode's argument from SDValue to SDNode *, to make it more clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
081134741b40b342fb2f85722c9cea5d412489a8 |
|
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Final step in the metadata API restructuring: move the getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3990b121cf4a0b280ed3e54cf13870cbf4259e78 |
|
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
This is a major cleanup of the instruction metadata interfaces that I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0eb419800ae51d6e0e00a656ede0627483755361 |
|
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9882007003b12466df717cdf66824120ede405be |
|
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9949933d6eb406bc74f7df7a0180a11c050a236f |
|
23-Dec-2009 |
Dale Johannesen <dalej@apple.com> |
Use more sensible type for flags in asms. PR 5570. Patch by Sylve`re Teissier (sorry, ASCII only). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
688fb80334e1ad7b259a051411bb72e18abea9e7 |
|
15-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix this to properly clear the FastISel debug location. Thanks to Bill for spotting this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
87bad707ed0fa98a986dc4621648f96da607e81b |
|
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove old DBG_LABEL code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
714efc63d4319b771d89a95aa7a42d400f03d8c9 |
|
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Remove the unused DisableLegalizeTypes option and related code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
381ca5572e3c37824e1c5be0fa02f7b5bdd4a1ce |
|
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't blindly set the debug location for PHI node copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6e3ff375474c4fd78feb0b8463eb273a23cb4404 |
|
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Make TargetSelectInstruction protected and called from FastISel.cpp instead of SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
07f111e7b746747cade8371eeaf8c613058cb3a0 |
|
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
The debug information for an LLVM Instruction applies to that Instruction and that Instruction only. Implement this by setting the "current debug position" back to Unknown after processing each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7896c9f436a4eda5ec15e882a7505ba482a2fcd0 |
|
03-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
improve portability to avoid conflicting with std::next in c++'0x. Patch by Howard Hinnant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5fca8b1c8dc0b9efb0a9822222a6505d1eea6bdd |
|
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2048b85c7c2c987874b9423e682ec8e60b60574b |
|
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGLowering to SelectionDAGBuilder, and rename SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6277eb2bb997a5da0808a8a5a57f18fd9faaf336 |
|
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move the FunctionLoweringInfo class and some related utility functions out of SelectionDAGBuild.h/cpp into its own files, to help separate general lowering logic from SelectionDAG-specific lowering logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b4afb137efbc38462707bab9f5e8bc5c2d07cd2d |
|
20-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel to avoid selecting the return instruction if a tail call has been encountered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
53bb5c95afe4ff2627cac513221af2e4e7c5d2e3 |
|
11-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Implement support to debug inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
df8ed024735b651d6e0082262d4e7a00b2fa4d32 |
|
09-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Hide a couple of options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e1f188fe27050ec812e5b64cc996e6bb93300392 |
|
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Move some code from being emitted as boilerplate duplicated in every *ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
533297b58da8c74bec65551e1aface9801fc2259 |
|
29-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename usesCustomDAGSchedInserter to usesCustomInserter, and update a bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
75c478a96a542dc386152e00518441e63d22058d |
|
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
pseudosourcevalue is also still using getGlobalContext(), so it isn't thread safe either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
931424a7d8b8b15ddda7308d6c5b08277d8bdc0e |
|
16-Oct-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Indent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1f03471a2dfb02fa39f7168244bb8c0891a56ab9 |
|
13-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set default location for a function if it is not set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
454e957979727bd29d75ec70623e50795f5824d9 |
|
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Set default location for the function if it is not already set. This code is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9dddf9748025cb65a951e6807bc156cf5bcd046d |
|
29-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Remove unnecessary cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e30e678865b8dc1b69ef1c26e7567ffd1300553c |
|
28-Sep-2009 |
Devang Patel <dpatel@apple.com> |
s/class Metadata/class MetadataContext/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a2148402ce39fb3aad09e98a32078d3853a01ae9 |
|
28-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Do not use global typedef for MDKindID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a279bc3da55691784064cb47200a1c584408b8ab |
|
20-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Tabs -> spaces, and remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ce31910eae5bd4896fa6c27798e7b26885691d3b |
|
19-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fb2e752e4175920d0531f2afc93a23d0cdf4db14 |
|
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8be58a11868ae081c195c107cd39a07f1f523877 |
|
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert r82214. It broke 403.gcc on x86_64 / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f8a56255a54bf60d0cfa6b20d10dad969cce9f81 |
|
18-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in sdisel switch lowering code. When it updates the phi nodes in switch successor blocks, it can introduce multiple phi operands of the same value from different blocks (and may not be on the predecessor list). This can be seen on CodeGen/Generic/2006-09-06-SwitchLowering.ll. But it's not known to cause any real regression (but I have added an assertion for it now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
713f043c16220b746804f668a72f4e0344cbe4d1 |
|
16-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
123eaa71b50f5ac2ea2233685baedddbb72f387b |
|
16-Sep-2009 |
Devang Patel <dpatel@apple.com> |
At iSel time, update DebugLoc based on debug info attached with an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4437ae213d5435390f0750213b53ec807c047f22 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate uses of cerr() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bbbfa99d3d18fe9f20265305e833666645ada528 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few DOUTs here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
825b72b0571821bf2d378749f69d6c4cfb52d2f9 |
|
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Split EVT into MVT and EVT, the former representing _just_ a primitive type, 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
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e50ed30282bb5b4a9ed952580523f2dda16215ac |
|
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
98ca4f2a325f72374a477f9deba7d09e8999c29b |
|
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Major calling convention code refactoring. Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8a0336a44bff2fcabc2de07cf482707c9508012f |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Delete a redundant variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f7d6cd46e920776bb33913b2498347cf99358dc4 |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c32304e56e85b89f426354dddf98c765eeb16333 |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
SelectionDAGISel no longer needs to check hasAvailableExternallyLinkage, as it is now a MachineFunctionPass, and MachineFunctionPass now handles this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a3477fe06df794e0eae26ea243f25912c619a6c4 |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
SelectionDAGISel does not "preserve all", since it makes lots of changes to the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ad2afc2a421a0e41603d5eee412d4d8c77e9bc1c |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c5b19b21d84814d19692a6bbea11fbd135f4b094 |
|
31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
933c762371fe8cc6e2ef5d00d6866f4924852fed |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ce63ffb52f249b62cdf2d250c128007b13f27e71 |
|
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f6ccee5a9d2b9573f679bca6266ade3eb8cd3f88 |
|
24-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch to getNameStr(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fbee579ed46016166d88b4defb81a2e7e253062d |
|
21-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Simplify / normalize some uses of Value::getName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
|
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f36892335b4919b9120e48a792e6b3630b9de978 |
|
12-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Fix assert(0) conversion, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7d696d80409aad20bb5da0fc4eccab941dd371d4 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Convert more assert(0)+abort() -> LLVM_UNREACHABLE, and abort()/exit() -> llvm_report_error(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5dcaceb0a6a7fcf508d9898547e10d374b0e4cd1 |
|
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
As Chris pointed out, we don't actually need to pass the context around here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d1474d09cbe5fdeec8ba0d6c6b52f316f3422532 |
|
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through MVT and related parts of SDISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1daf7d8abebd6e0104a6b41a774ccbb19a51c60 |
|
09-Jul-2009 |
David Goodwin <david_goodwin@apple.com> |
Use common code for both ARM and Thumb-2 instruction and register info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5c22c8074404797f1313b1334757254fb5c6487a |
|
23-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add a new step to legalization to legalize vector math operations. This will allow simplifying LegalizeDAG to eliminate type legalization. (I have a patch to do that, but it's not quite finished; I'll commit it once it's finished and I've fixed any review comments for this patch.) See the comment at the beginning of lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp for more details on the motivation for this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dea4085da04e2e3993f9357ce5049a7fbe05e924 |
|
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Remove the #ifndef NDEBUG from the FastISel debugging options. This fixes dejagnu tests that use these options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c1c6ef8f74fc550f29cfec1f2fb699dd8c2fb94e |
|
08-May-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Factor out cycle-finder code and make it generic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
98a366d547772010e94609e4584489b3e5ce0043 |
|
30-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Instead of passing in an unsigned value for the optimization level, use an enum, which better identifies what the optimization is doing. And is more flexible for future uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
be8cc2a3dedeb7685f07e68cdc4b9502eb97eb2b |
|
29-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Second attempt: Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c69d56f1154342a57c9bdd4c17a10333e3520127 |
|
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
r70270 isn't ready yet. Back this out. Sorry for the noise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2e9d5f912a9841d3685ba0241abe1131943fed29 |
|
28-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ad62f53795ac3da0353afba7e83464679c91ce5c |
|
24-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Factor out a bit of code that appears in several places into a utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
16f2ffd1580a168a7fdd78bf48b26f0995e1c109 |
|
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
In -fast mode do what FastISel does. This code could use some refactoring help! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
390f3ace34855a3d4c9e0adf468976375f8c6dc1 |
|
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If FastISel is run and it has known DebugLoc then use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a80efceb93211a22e13dfc68198da4a25c1a7762 |
|
28-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix what surely must be a copy+pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
697cbbfb00c318f98d6eb51945f077e2bfe8781e |
|
20-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
For inline asm output operand that matches an input. Encode the input operand index in the high bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8042255118ddaf49ac940805b95f77eddecc70e5 |
|
12-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Enable Chris' value propagation change. It make available known sign, zero, one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5aa4977fba97e816b5735f0bc53f16a46b24de63 |
|
24-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit a DBG_LABEL or not. We want to fall back to the original way of emitting debug info when we're in -O0/-fast mode. - Add plumbing in to pass the "Fast" flag to places that need it. - XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I need to investigate still. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dfdacee2abd53d71a5b9a9f4d38c7973cc722663 |
|
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Generate these labels when we're in "fast" mode, not simply when we're no in "optimize-for-size" mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
47ac0f0c7c39289f5970688154e385be22b7f293 |
|
11-Feb-2009 |
Dan Gohman <gohman@apple.com> |
When scheduling a block in parts, keep track of the overall instruction index across each part. Instruction indices are used to make live range queries, and live ranges can extend beyond scheduling region boundaries. Refactor the ScheduleDAGSDNodes class some more so that it doesn't have to worry about this additional information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6f38cb61a94b3abab70f0ee463bdcf55d86d334e |
|
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Use getDebugLoc forwarder instead of getNode()->getDebugLoc. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1fdbc1dd4e9cb42c79a30e8dc308c322e923cc52 |
|
07-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowing ScheduleDAG's TLI member to use const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0a3776dc6f702d4e3f4a189df7f43d8f99957773 |
|
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGISel::Schedule to SelectionDAGISel::CreateScheduler, and make it just create the scheduler. Leave running the scheduler to the higher-level code. This makes the higher-level code a little more explicit and easier to follow, and will help enable some future refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
84fbac580941548a6ab1121ed3b0ffdc4e2bc080 |
|
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Move ScheduleDAGSDNodes.h to be a private header. Front-ends that previously included this header should include SchedulerRegistry.h instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c460ae90019ddb19d4c07b2cd2fbaecfa7adf67d |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fill in more omissions in DebugLog propagation. I think that's it for this directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b51d40cf40eac676dda3ae9dfeb55822fa403394 |
|
03-Feb-2009 |
Devang Patel <dpatel@apple.com> |
First initialize DAG otherwise dwarf writer is used uninitialized. Duncan spotted this. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6a8a0d74cb73956a9452943d4d4102ebede1f69e |
|
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in something sensible for the debug location information when creating the initial PHI nodes of the machine function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b288487a8e2291dd802e19b1a9bc930368f448bf |
|
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Use SDL->getCurDebugLoc() instead of unknown loc for landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ec37e98b3d943328795a06a3184a125583dec151 |
|
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Explicitly pass in the "unknown" debug location. This is probably not correct. We need more infrastructure before we can get the DebugLoc info for these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1465d61bdd36cfd6021036a527895f0dd358e97d |
|
28-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getAnalysisToUpdate to getAnalysisIfAvailable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1 |
|
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f7119393a97c2a10757084b6bc186380f8c19a73 |
|
16-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Instead of adding dependence edges between terminator instructions and every other instruction in their blocks to keep the terminator instructions at the end, teach the post-RA scheduler how to operate on ranges of instructions, and exclude terminators from the range of instructions that get scheduled. Also, exclude mid-block labels, such as EH_LABEL instructions, and schedule code before them separately from code after them. This fixes problems with the post-RA scheduler moving code past EH_LABELs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fc54c552963545a81e4ea38e60460590afb2d5ae |
|
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Generalize the HazardRecognizer interface so that it can be used to support MachineInstr-based scheduling in addition to SDNode-based scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
79ce276083ced01256a0eb7d80731e4948ca6e87 |
|
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e9530ecae4897fe8157bd4d7616043bd8c0484e2 |
|
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
More consts on TargetLowering references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
83489bb7700c69b7a4a8da59365c42d3f5c8129b |
|
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use DebugInfo interface to lower dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6e7a1617ac4a34792d9097b8d3644b72f57a45f7 |
|
09-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Request DwarfWriter. This will be used to handle dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d68a07650cdb2e18f18f362ba533459aa10e01b6 |
|
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Tidy up #includes, deleting a bunch of unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b6862bbe34be4a832f709596f8dc971ab9895b06 |
|
14-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Reapply r60997, this time without forgetting that target constants are allowed to have an illegal type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2d8cc315215febb15a8c18c41ef0b165da71c3b8 |
|
14-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r60997. It was causing this failure: Running /Users/void/llvm/llvm.src/test/CodeGen/Generic/dg.exp ... FAIL: /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll Failed with exit(1) at line 1 while running: llvm-as < /Users/void/llvm/llvm.src/test/CodeGen/Generic/asm-large-immediate.ll | llc | /usr/bin/grep 68719476738 Assertion failed: ((TypesNeedLegalizing || getTypeAction(VT) == Legal) && "Illegal type introduced after type legalization?"), function HandleOp, file /Users/void/llvm/llvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 493. 0 llc 0x0085392e char const* std::find<char const*, char>(char const*, char const*, char const&) + 98 1 llc 0x00853e63 llvm::sys::PrintStackTraceOnErrorSignal() + 593 2 libSystem.B.dylib 0x96cac09b _sigtramp + 43 3 libSystem.B.dylib 0xffffffff _sigtramp + 1765097359 4 libSystem.B.dylib 0x96d24ec2 raise + 26 5 libSystem.B.dylib 0x96d3447f abort + 73 6 libSystem.B.dylib 0x96d26063 __assert_rtn + 101 7 llc 0x004f9018 llvm::cast_retty<llvm::SubprogramDesc, llvm::DebugInfoDesc*>::ret_type llvm::cast<llvm::Sub ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0f546d4565b988f69850f42282e57a850153146d |
|
13-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeDAG is not supposed to introduce illegal types into the DAG if they were not already there. Check this with an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
25cf2275ff7de3de3bc0e508abaf457413d74725 |
|
24-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
If the type legalizer actually legalized anything (this doesn't happen that often, since most code does not use illegal types) then follow it by a DAG combiner run that is allowed to generate illegal operations but not illegal types. I didn't modify the target combiner code to distinguish like this between illegal operations and illegal types, so it will not produce illegal operations as well as not producing illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9e76fea3abd4229749e6ead46a0016cabff4a056 |
|
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Remove the "fast" form of the list-burr scheduler, and use the dedicated "fast" scheduler in -fast mode instead, which is faster. This speeds up llc -fast by a few percent on some testcases -- the speedup only happens for code not handled by fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
343f0c046702831a4a6aec951b6a297a23241a55 |
|
20-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Experimental post-pass scheduling support. Post-pass scheduling is currently off by default, and can be enabled with -disable-post-RA-scheduler=false. This doesn't have a significant impact on most code yet because it doesn't yet do anything to address anti-dependencies and it doesn't attempt to disambiguate memory references. Also, several popular targets don't have pipeline descriptions yet. The majority of the changes here are splitting the SelectionDAG-specific code out of ScheduleDAG, so that ScheduleDAG can be moved to libLLVMCodeGen.a. The interface between ScheduleDAG-using code and the rest of the scheduling code is somewhat rough and will evolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bc5cbb8be9d935240be5a57a8f37c5258a9d0563 |
|
12-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that inserts X87 FP_REG_KILL instructions from a special-purpose hook to a new pass. Also, add check to see if any x87 virtual registers are used, to avoid doing any work in the common case that no x87 code is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9b75b373756288cd39489da7994207f50b31ee40 |
|
11-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Change the scheduler accessor methods to accept an explicit TargetMachine argument instead of taking the SelectionDAG's TargetMachine. This is needed for some upcoming scheduler changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2275105edbee89df8f5a68655ee75c9a5f169dbb |
|
28-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Take Chris' suggestion and define EnableFastISelVerbose and EnableFastISelAbort variables for Release mode instead of using ifdefs in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
727809ad8a826f26b757747ae2a329b49e5449b3 |
|
28-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Protect the code for fast-isel debugging with #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7cb07874dcadaa9a5082a80959cd15d44ba3a133 |
|
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Turn on LegalizeTypes, the new type legalization codegen infrastructure, by default. Please report any breakage to the mailing lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d659d50482e2f9edf8f436e4a1aa30c68c6d020b |
|
20-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fast-isel no longer an experiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dd5b58ad7be78be90390074f0df138778af5c895 |
|
15-Oct-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for exception-handling constructs. - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b8cab9227a0f6ffbdaae33e3c64268e265008a6a |
|
14-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix command-line option printing to print two spaces where needed, instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
241f464d24a6c22721607841069bbeb17b3f71e6 |
|
04-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel's handling of atomic instructions. They may expand to multiple basic blocks, in which case fast-isel needs to informed of which block to use as it resumes inserting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a43abd102f123f6d3bd9ad92045f8119e3fb6153 |
|
29-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to not initialize the PIC-base register multiple times in functions with PIC references from more than one basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0598866c052147c31b808391f58434ce3dbfb838 |
|
25-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Large mechanical patch. s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
77ca41e5c3f99ee8962b21a7d90bb251a594a65e |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't print fast-isel debug messages by default. Thanks Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2c442eda747c5c4ec0533642754202e47a1be81c |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't forget the newline in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
33134c4a75558288d663267c8991f6bd37a530af |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2c4bf119be8aa05cdc3dc88c57006353f07f0d2c |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Enable DeadMachineInstructionElim when Fast-ISel is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
86b49f8e2de796cb46c7c8b6a4c4900533fd53f4 |
|
24-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next round of earlyclobber handling. Approach the RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eaf42abab6d465c38891345d999255871cf03943 |
|
24-Sep-2008 |
Devang Patel <dpatel@apple.com> |
s/ParameterAttributes/Attributes/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d57dd5f4e6740520820bc0fca42a540e31c27a73 |
|
23-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Arrange for FastISel code to have access to the MachineModuleInfo object. This will be needed to support debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
91aac1015e6714d959801dd8d60f55a72827dc4d |
|
17-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1937e2f6ca0e6a04c4ad5fdb5b606b5ed9533e74 |
|
16-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Don't take the time to CheckDAGForTailCallsAndFixThem when tail calls are not enabled. Instead just omit the tail call flag when calls are created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
095cc29f321382e1f7d295e262a28197f92c5491 |
|
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Define CallSDNode, an SDNode subclass for use with ISD::CALL. Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f5aeb1a8e4cf272c7348376d185ef8d8267653e0 |
|
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Rename ConstantSDNode::getValue to getZExtValue, for consistency with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0586d91bb3e516d5826826522d9a90ed6ef74d86 |
|
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add X86FastISel support for static allocas, and refences to static allocas. As part of this change, refactor the address mode code for laods and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ee25dca5b2f321103e879fb125b7870683e7085 |
|
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a break statement that I accidentally deleted when I shuffled the fast-isel command-line options around. This fixes a bunch of fast-isel failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4344a5d0d7b280f0b891e0e6a4413b059d9080b3 |
|
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change -fast-isel-no-abort to -fast-isel-abort, which now defaults to being off by default. Also, add assertion checks to check that the various fast-isel-related command-line options are only used when -fast-isel itself is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
293d5f8bc02a9148238b2c79484637f56de65b9c |
|
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a new option, -fast-isel-verbose, that can be used with -fast-isel-no-abort to get a dump of all unhandled instructions, without an abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cf01f7a78c18224866595b4b493d03a3de305e1f |
|
09-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove the code that protected FastISel from aborting in the case of loads, stores, and conditional branches. It can handle those now, so any that aren't handled should trigger the abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a8657e3587eb71eb920c4f0d7d4baa58f33a277d |
|
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a few I's that were meant to be renamed to BI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9f1185076d60153fd35feb3cadb1b4cd8debc0b6 |
|
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Avoid redefinition and nnbreak windows build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8a11053f3ca7efb29312c4293c4fdb5d2ca3e20f |
|
06-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the code that inserts copies for function livein registers out of ScheduleDAGEmit.cpp and into SelectionDAGISel.cpp. This allows it to be run exactly once per function, even if multiple SelectionDAG iterations happen in the entry block, as may happen with FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ae73dc1448d25b02cabc7c64c86c64371453dda8 |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3df24e667f04a7003342b534310919abc9c87418 |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Create HandlePHINodesInSuccessorBlocksFast, a version of HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f0cbcd48804961b05359ee41859bbd7774f41fe0 |
|
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Split the SelectionDAG-building code, including the FunctionLoweringInfo and SelectionDAGLowering classes, out of SelectionDAGISel.cpp and put it in a separate file, SelectionDAGBuild.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f45261fb9b2f429c4f1f5a0270e2f5e127e39467 |
|
03-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
If TargetSelectInstruction returns true, move to next instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d2ff647964ed242e67ac12f7d21a58c864309d95 |
|
02-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Ensure that HandlePHINodesInSuccessorBlocks is run for all blocks, even in FastISel mode in the case where FastISel successfully selects all the instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
99b218218c0ca3ebfdd568ddfeafa07842e9d69d |
|
29-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a target callback for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ba36cb5242eb02b12b277f82b9efe497f7da4d7f |
|
28-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9ffd8b5720d606eb7da702c97ed6491697867949 |
|
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move CaseBlock, JumpTable, and BitTestBlock to be members of SelectionDAGLowering instead of being in an anonymous namespace. This fixes warnings about SelectionDAGLowering having fields using anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5edd361497f4c78a20fcbb75c6e7e94ff8046ed1 |
|
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a FastISel bug where the instructions from lowering the arguments were being emitted after the first instructions of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
91ee5454ae8f15de769a7316b4c36734b6103e45 |
|
28-Aug-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce the size of the Parts vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c748ffa4e4408545b6adf102bfba52001f8a0a92 |
|
28-Aug-2008 |
Rafael Espindola <rafael.espindola@gmail.com> |
Correctly resize the Parts array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e00a8a2a2e11a37fd1ddf2504bd22d225d0994d0 |
|
28-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
Split the ATOMIC NodeType's to include the size, e.g. ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD. Increased the Hardcoded Constant OpActionsCapacity to match. Large but boring; no functional change. This is to support partial-word atomics on ppc; i8 is not a valid type there, so by the time we get to lowering, the ATOMIC_LOAD nodes looks the same whether the type was i8 or i32. The information can be added to the AtomicSDNode, but that is the largest SDNode; I don't fully understand the SDNode allocation, but it is sensitive to the largest node size, so increasing that must be bad. This is the alternative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7c3234c6be0dc0bdf4b5d6f848cd728a77f349d7 |
|
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reorganize the lifetimes of the major objects SelectionDAGISel works with. SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering objects now get created once per SelectionDAGISel instance, and can be reused across blocks and across functions. Previously, they were created and destroyed each time they were needed. This reorganization simplifies the handling of PHI nodes, and also SwitchCases, JumpTables, and BitTestBlocks. This simplification has the side effect of fixing a bug in FastISel where successor PHI nodes weren't being updated correctly. This is also a step towards making the transition from FastISel into and out of SelectionDAG faster, and also making plain SelectionDAG faster on code with lots of little blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
99a6cb92d173c142073416c81efe6d3daeb80b49 |
|
27-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
disallow direct access to SDValue::ResNo, provide a getter instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
09c5d8baa2c068fead50630ec2432a5dd1e7b904 |
|
26-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
typo fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6ecf50908c78aae0feff1c378fbb75dcf013ed21 |
|
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make MBBMap a DenseMap instead of a std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f350b277f32d7d47f86c0e54f4aec4d470500618 |
|
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move the point at which FastISel taps into the SelectionDAGISel process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6679906d9724868bf2198e04952ba42f31d7b7fe |
|
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating shift-by-zero SDNodes in the common case of i8* getelementptr. DAGCombine eliminates these, but this is a fairly common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3c8f36fd03d046ee2a8700c60b5a52887d9f07b9 |
|
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reapply r55191 and r55192. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
449416deb6d08bbc0939c51e5e82f55decdff601 |
|
22-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r55190, r55191, and r55192. They broke the build with this error message: {standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e0182ec0e473ae2cd23f6451d2539b7ec449f04e |
|
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Support non-fallthrough unconditional branches in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
83785c80968165b30fcdd111ceb2c28d38bcff86 |
|
21-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bb466331e7e50d03497ce40ee344870236fd9c32 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Simplify FastISel's constructor argument list, make the FastISel class hold a MachineRegisterInfo member, and make the MachineBasicBlock be passed in to SelectInstructions rather than the FastISel constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2385852b5b9b82e15eb4502d71b5f916882418d7 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Dump the instruction that foiled ISel even when -debug is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d4207893014f2d36f31fce607405336fc38cd4b7 |
|
20-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Kill off SimpleBBISel, it's replaced by FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a267651b7ec4f96e01b31f541d446758bf8da8a9 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Disable DAGCombine's alignment inference in "fast" codegen mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c53ec498857aa3e6d4fc17bd67dd282dcfc821da |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use BitVector instead of std::vector<unsigned char>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cc8430f742b0f1e567292c8a776e94fc1c930b2a |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a leak in the FastISel code that Chris pointed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3e697cfa979538c77459a3e4237e9bc1ac638761 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add support for running SelectionDAG if FastISel fails. This is under a command-line option, so that the default behavior is an abort, which is useful for exposing code that isn't supported yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
78eca170e9ac5db7fd525f9bbf27090fefcbb646 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add code to call FastISel, and a command-line option to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5eca075b74d62c621b160aa216b4cd50829a2cc7 |
|
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Rename some GC classes so that their roll will hopefully be clearer. In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5a29c9eed157af51a8d338b5a225b146881819e8 |
|
17-Aug-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Factor GC metadata table assembly generation out of Collector in preparation for splitting AsmPrinter into its own library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
925a7e8ed6522f291b4ae559ccfa56db461016e3 |
|
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Rename SelectionDAGISel's FastISel to Fast, to begin to make room for the new FastISel instruction selection code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
381cb07544a2bc119e39969d7d508a6247773e1c |
|
08-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add skeleton of simple basic block instruction selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
39fd6e81b1b0de8b820155dc6a0dae226c109de6 |
|
07-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Factor code that finalize PHI nodes, jump tables, etc. out of SelectBasicBlock. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3bc9c6f3e75dba02c1cc647b1f56ee1f39919046 |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Remove the -disable-correct-folding option, which was ugly and is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6ac8df7f611b5b129af7192ad931862fc8169aae |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
This option doesn't need to be a target option. It can be in SDISel instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bd3ba461eb5578a81ba09ff7bd7eb271d1130196 |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
- Fix SelectionDAG to generate correct CFGs. - Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6f498b0a8eeb69a9aa20319e2c803b1d58525547 |
|
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDISel lowering of PHI nodes to use ComputeValueVTs. This allows it to work correctly on aggregate values. This fixes PR2623. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1f565bcff6781d0a4395b4c386f7168df13ddbca |
|
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs. This allows it to work correctly on nested aggregate values. This fixes PR2625. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7232464bdaae5e6e48986a1e3b9a95fac7aa7bdf |
|
31-Jul-2008 |
Dale Johannesen <dalej@apple.com> |
Add a flag to disable jump table generation (all switches use the binary search algorithm) for environments that don't support it. PPC64 JIT is such an environment; turn the flag on for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
90d33ee746f354030a4144c4ffa028599663615b |
|
30-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Don't look for leaf values to store when lowering stores of empty structs. This fixes PR2612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5bc1ea0736a5785ed596d58beeff2ab23909e33d |
|
29-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Add vector shifts to the IR, patch by Eli Friedman. CodeGen & Clang work coming next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fed90b6d097d50881afb45e4d79f430db66dd741 |
|
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
475871a144eb604ddaf37503397ba0941442e5fb |
|
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename SDOperand to SDValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8b4588fa64f0ebfbb7d2b9b4af8c682ddddf29c0 |
|
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use AliasAnalysis::pointsToConstantMemory in SDISel to avoid unnecessary dependencies with constant load nodes. This allows them to be scheduled freely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fc74abfba5128544a750fce22fdf13eb0403e3ce |
|
23-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable first-class aggregates support. Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2dbc167294c1a7a4cd7a43f86bff104afd6110e5 |
|
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
After early-lowering the FORMAL_ARGUMENTS node, delete it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
462dc7f4960e5074ddf4769ec8b2ef1ba7a4d2c8 |
|
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add titles to the various SelectionDAG viewGraph calls that include useful information like the name of the block being viewed and the current phase of compilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f00e74f4d64385e6b2ee29887114e7c8abdf1f17 |
|
17-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Turn LegalizeTypes back off again for the moment: it is breaking Darwin bootstrap due to missing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7f1d8aeef6ce0075e5dd144c669614813738be24 |
|
16-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Turn on LegalizeTypes by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5e84368b26415b3bb7f3f8d9cff3e05938dd82d0 |
|
14-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reapply 53476 and 53480, with a fix so that it properly updates the BB member to the current basic block after emitting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b5eec33dcde63bee6048d54bee2a376737028e5c |
|
12-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Back out 53476 and 53480 for now. Somehow they cause llc to miscompile 179.art. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dbe2a5a26925cd3ed8a4c2cf02c8273fcf9919d7 |
|
11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add support for putting NamedRegionTimers in TimerGroups, and use a timer group for the timers in SelectionDAGISel. Also, Split scheduling out from emitting, to give each their own timer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
70587ea813986bb0dbef71610091d496e28c22a6 |
|
11-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
make legalize types be a command line option: -enable-legalize-types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0e5f1306b059b62d7725f324e087efbc8e7a782d |
|
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for SDNodes. The pool is allocated once for each function, and reused across SelectionDAGs. This drastically reduces the number of calls to malloc/free made during instruction selection, and improves memory locality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
126d90770bdb17e6925b2fe26de99aa079b7b9b3 |
|
04-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Rather than having a different custom legalization hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
10fff6078a7bc42f142c536bd55e9569253b280b |
|
04-Jul-2008 |
Bill Wendling <isanbard@gmail.com> |
Revert my previous check-in that split up MachineModuleInfo. It turns out to slow the compiler down at -O0 some 30% or more. Ooops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4bdcb61af33399d4e01fdf3c47ca1f1f5356e370 |
|
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add a new getMergeValues method that does not need to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1a792bc59a4d65d0e346109c681768e07e62be5 |
|
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do run ComputeLiveOutVRegInfo with -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4576f6d7a9c0f2c6a3b6c5d4d8a3063bbf763ae5 |
|
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not use computationally expensive scheduling heuristics with -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ebffb660a68384dd8b5e2ff36d68e94a3920611b |
|
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Apply Chris' suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4406604047423576e36657c7ede266ca42e79642 |
|
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
99fe47bc81d53762454ff112ab34378b00299b5a |
|
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Use a simpler but equivalent form of RecordSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f667480d84a99a34adcac217e1a4c9fb7e2bfae6 |
|
01-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add timing report for various sub-passes under SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7f460203b0c5350e9b2c592f438e40f7a7de6e45 |
|
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its purpose, and give it a custom SDNode subclass so that it doesn't need to have line number, column number, filename string, and directory string, all existing as individual SDNodes to be the operands. This was the only user of ISD::STRING, StringSDNode, etc., so remove those and some associated code. This makes stop-points considerably easier to read in -view-legalize-dags output, and reduces overhead (creating new nodes and copying std::strings into them) on code containing debugging information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
db8d56b825efeb576d67b9dbe39d736d93306222 |
|
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Split scheduling from instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a44b674a42b6ca57128c4eb5a358298ed3bb1406 |
|
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Replace some std::vectors that showed up in heap profiling with SmallVectors. Change the signature of TargetLowering::LowerArguments to avoid returning a vector by value, and update the two targets which still use this directly, Sparc and IA64, accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f9516208e57364ab1e7d8748af1f59a2ea5fb572 |
|
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Revert the SelectionDAG optimization that makes it impossible to create a MERGE_VALUES node with only one result: sometimes it is useful to be able to create a node with only one result out of one of the results of a node with more than one result, for example because the new node will eventually be used to replace a one-result node using ReplaceAllUsesWith, cf X86TargetLowering::ExpandFP_TO_SINT. On the other hand, most users of MERGE_VALUES don't need this and for them the optimization was valuable. So add a new utility method getMergeValues for creating MERGE_VALUES nodes which by default performs the optimization. Change almost everywhere to use getMergeValues (and tidy some stuff up at the same time). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
305635abeae1d20519b60856c89479e8b7b5d4dd |
|
27-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
Refactor the DebugInfoDesc stuff out of the MachineModuleInfo file. Clean up some uses of std::vector, where it's return std::vector by value. Yuck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fd4418fc9b4725c44210c169c4d6500be468ca70 |
|
25-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove the OrigVT member from AtomicSDNode, as it is redundant with the base SDNode's VTList. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
28873106309db515d58889a4c4fa3e0a92d1b60e |
|
25-Jun-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemOperands to Atomic operations since Atomics touches memory. Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ab8ec0a26caa754f0376dbdede3a33ad84f23e21 |
|
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Teach ReturnInst lowering about aggregate return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dded0fd398bf744454b2c9c95b68f4a27025f880 |
|
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix the index calculations for the extractvalue lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8f36f6d11761246bb4bd4ae1be88a58ba24d96b0 |
|
20-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Simplify the ComputeLinearIndex logic and fix a few bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ead0d88ad7659dabd66cc3149af97d98256fca84 |
|
17-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
add a new -enable-value-prop flag for llcbeta, that enables propagation of value info (sign/zero ext info) from one MBB to another. This doesn't handle much right now because of two limitations: 1) only handles zext/sext, not random bit propagation (no assert exists for this) 2) doesn't handle phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a47c6c37034f4e57bc8187e959da4eadb6e24afa |
|
17-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
507a58ac9b20ddcea2e56a014be26b8f8cc0ecb8 |
|
14-Jun-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
add missing atomic intrinsic from gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f5025cfa683b4cfb9f04b1e63dac7364a5dbf900 |
|
09-Jun-2008 |
Dan Gohman <gohman@apple.com> |
CodeGen support for aggregate-value function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8a6ccb5f73cf2e490faa181ad6662633b3ee38df |
|
09-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Handle empty aggregate values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8e4eb09b1e3571965f49edcdfb56b1375b1b7551 |
|
08-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove comparison methods for MVT. The main cause of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1d685a46bf0c2f54378bc074c0b874bb7d12032e |
|
07-Jun-2008 |
Dan Gohman <gohman@apple.com> |
CodeGen support for insertvalue and extractvalue, and for loads and stores of aggregate values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2d389e8ad7e98fa50f8d021a7669ba0aab07a571 |
|
07-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Connect successors before creating the DAG node for the branch. This has no visible functionality change, but enables a future patch where node creation will update the CFG if it decides to create an unconditional rather than a conditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb |
|
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Wrap MVT::ValueType in a struct to get type safety and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4fa2a3f0efe0081272b09550fef6251d355047e4 |
|
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Use isSingleValueType instead of isFirstClassType to exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
041e2eb51721bcfecee5d9c9fc409ff185526e47 |
|
15-May-2008 |
Dan Gohman <gohman@apple.com> |
IR support for extractvalue and insertvalue instructions. Also, begin moving toward making structs and arrays first-class types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
35213344672fb5215a36c8dd592a7cc7190445fa |
|
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Really silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
50871247216dfef8386a112766e972a1792b0b56 |
|
14-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Silence some compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
844731a7f1909f55935e3514c9e713a62d67662e |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b43e9c196542acc80c9e4643809661065710848f |
|
12-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Add support for vicmp/vfcmp codegen, more legalize support coming. This is necessary to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0b12ecf6ff6b5d3a144178257b6206f0c4788792 |
|
08-May-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Turn StripPointerCast() into a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b04adddd50dfa4c3fbdad3b15d601402254c1ff5 |
|
07-May-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make StripPointerCast a common function (should we mak it method of Value instead?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4a3f6c88820a204f80ca0fa3f1f2fe09ca10b02f |
|
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Make several variable declarations static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
63307c335aa08b0d6a75f81d64d79af7e90eb78b |
|
05-May-2008 |
Mon P Wang <wangmp@apple.com> |
Added addition atomic instrinsics and, or, xor, min, and max. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1fa850bdd26fa51b0e593378a9fc1507154f992d |
|
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Use push_back(...) instead of resize(1, ...), per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cba3b44d258ee89f7dae1ea6e67d97258211ff8b |
|
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix uninitialized uses of the FPC variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6bf30ab347bc00a8dc7115244298d78f7721ea34 |
|
01-May-2008 |
Chris Lattner <sabre@nondot.org> |
don't randomly miscompile seto/setuo just because we are in ffastmath mode. This fixes rdar://5902801, a miscompilation of gcc.dg/builtins-8.c. Bill, please pull this into Tak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
30e62c098b5841259f8026df1c5c45c7c1182a38 |
|
30-Apr-2008 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Tail call optimization improvements: Move platform independent code (lowering of possibly overwritten arguments, check for tail call optimization eligibility) from target X86ISelectionLowering.cpp to TargetLowering.h and SelectionDAGISel.cpp. Initial PowerPC tail call implementation: Support ppc32 implemented and tested (passes my tests and test-suite llvm-test). Support ppc64 implemented and half tested (passes my tests). On ppc tail call optimization is performed if caller and callee are fastcc call is a tail call (in tail call position, call followed by ret) no variable argument lists or byval arguments option -tailcallopt is enabled Supported: * non pic tail calls on linux/darwin * module-local tail calls on linux(PIC/GOT)/darwin(PIC) * inter-module tail calls on darwin(PIC) If constraints are not met a normal call will be emitted. A test checking the argument lowering behaviour on x86-64 was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3fb2968f2febbcd8e05270270858b6f2afd4b342 |
|
29-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
make the vector conversion magic handle multiple results. We now compile test2/test3 to: _test2: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End addps %xmm1, %xmm0 ret _test3: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End paddd %xmm1, %xmm0 ret as expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
41f6259a4b54d2dc58a4040e942b37f00d306b7b |
|
29-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
add support for multiple return values in inline asm. This is a step towards PR2094. It now compiles the attached .ll file to: _sad16_sse2: movslq %ecx, %rax ## InlineAsm Start %ecx %rdx %rax %rax %r8d %rdx %rsi ## InlineAsm End ## InlineAsm Start set %eax ## InlineAsm End ret which is pretty decent for a 3 output, 4 input asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
33bf38ad881fa3d403cc81209d0ae796f94f125e |
|
29-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a bug in RegsForValue::getCopyToRegs() that causes cyclical scheduling units. If it's creating multiple CopyToReg nodes that are "flagged" together, it should not create a TokenFactor for it's chain outputs: c1, f1 = CopyToReg c2, f2 = CopyToReg c3 = TokenFactor c1, c2 ... = user c3, ..., f2 Now that the two CopyToReg's and the user are "flagged" together. They effectively forms a single scheduling unit. The TokenFactor is now both an operand and a successor of the Flagged nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ebc3a3a3b2adb3bf5a1dae0c0e6572be79375efd |
|
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Delete an unused constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
10a6b7ab656ddce1acfa1216311d2564edaecbe3 |
|
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment to CreateRegForValue that clarifies the handling of aggregate types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0fe00906c8f1d1e455c780b221299a1349cc7094 |
|
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rewrite the comments for RegsForValue and its members, and reorder some of the members for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b20d4f8d499c4c5315de69bd22c652665a7e3ab8 |
|
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Don't call size() on each iteration of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6833b0601bdd53957db049b13dfa2e6a9e56f65f |
|
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Another collection of random cleanups. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b606dba13ba84721cc297174c2eb1275bc642604 |
|
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Remove the SmallVector ctor that converts from a SmallVectorImpl. This conversion open the door for many nasty implicit conversion issues, and can be easily solved by initializing with (V.begin(), V.end()) when needed. This patch includes many small cleanups for sdisel also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8eaff0449c70a7baa75c6ec5d1d90ea9ac2dad5a |
|
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
switch RegsForValue::Regs to be a SmallVector to avoid heap thrash on tiny (usually single-element) vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f899fce0c0492a6fa405323c073b3380260e5806 |
|
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
move static function out of anon namespace, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
acf8b01fd6dd7a796d490795886bdfa67f074631 |
|
28-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Another step to getting multiple result inline asm to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5a09690446a36f94f990db7d18d9b9ac8587888a |
|
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Implement a signficant optimization for inline asm: When choosing between constraints with multiple options, like "ir", test to see if we can use the 'i' constraint and go with that if possible. This produces more optimal ASM in all cases (sparing a register and an instruction to load it), and fixes inline asm like this: void test () { asm volatile (" %c0 %1 " : : "imr" (42), "imr"(14)); } Previously we would dump "42" into a memory location (which is ok for the 'm' constraint) which would cause a problem because the 'c' modifier is not valid on memory operands. Isn't it great how inline asm turns 'missed optimization' into 'compile failed'?? Incidentally, this was the todo in PowerPC/2007-04-24-InlineAsm-I-Modifier.ll Please do NOT pull this into Tak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
507ffd2423cfd0f5204c69e44c50aa3c759609d8 |
|
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
isa+cast -> dyn_cast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4376fea6631d41fff3f2a7c6186faed9eff59619 |
|
27-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch of inline asm code out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
23ce502cb7d9d06a1786d276a10be42e65759eca |
|
25-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Remove the code from CodeGenPrepare that moved getresult instructions to the block that defines their operands. This doesn't work in the case that the operand is an invoke, because invoke is a terminator and must be the last instruction in a block. Replace it with support in SelectionDAGISel for copying struct values into sequences of virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
67780f108ccb509dffe3ff63d3826ea6accb1bb1 |
|
23-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Use isa instead of dyn_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3dc34f682dfdfbf75c2b883e21a953d41df4f3a0 |
|
23-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Add support to codegen for getresult instructions with undef operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6ccbbd89906157187ac04b2b3237c4aee7acd095 |
|
15-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Change Divided flag to Split, as suggested by Evan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9701c8a18fd3888d20f4cd8fcebc6bc99f005c0a |
|
14-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Fix /test/CodeGen/PowerPC/big-endian-actual-args.ll for linux/ppc32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c0cb28fd3abee9a8b40856990e04f1af2f9bd7b8 |
|
13-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Add a divided flag for the first piece of an argument divided into mulitple parts. Fixes PR1643 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
707e0184233f27e0e9f9aee0309f2daab8cfe7f8 |
|
12-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal on any current target and aren't optimized in DAGCombiner. Instead of using intermediate nodes, expand the operations, choosing between simple loads/stores, target-specific code, and library calls, immediately. Previously, the code to emit optimized code for these operations was only used at initial SelectionDAG construction time; now it is used at all times. This fixes some cases where rep;movs was being used for small copies where simple loads/stores would be better. This also cleans up code that checks for alignments less than 4; let the targets make that decision instead of doing it in target-independent code. This allows x86 to use rep;movs in low-alignment cases. Also, this fixes a bug that resulted in the use of rep;stos for memsets of 0 with non-constant memory size when the alignment was at least 4. It's better to use the library in this case, which can be significantly faster when the size is large. This also preserves more SourceValue information when memory intrinsics are lowered into simple loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4091d34f3c05717eb5bb66a1257a0c1005e6dfa |
|
05-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Make sure both PendingLoads and PendingExports are flushed before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1532f3ddd77c362dd5f613af06b4de636e3c5b0e |
|
02-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Recommitting EH patch; this should answer most of the review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b6d5b1439047609c050576f3dc52b722e76bd30b |
|
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Revert 49006 for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1544e4713be68edcf042de5aed7265dff7169d9d |
|
01-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Emit exception handling info for functions which are not marked nounwind, or for all functions when -enable-eh is set, provided the target supports Dwarf EH. llvm-gcc generates nounwind in the right places; other FEs will need to do so also. Given such a FE, -enable-eh should no longer be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d27c991cebe48fdf82b5d9eec6c2a1a244f82622 |
|
30-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Fix "Control reaches the end of non-void function" warnings, patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
86e1ebf9bbde7408a1d7859ea207981457e11cc2 |
|
27-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating chain dependencies from CopyToReg nodes to load and store nodes. This doesn't currently have much impact the generated code, but it does produce simpler-looking SelectionDAGs, and consequently simpler-looking ScheduleDAGs, because there are fewer spurious dependencies. In particular, CopyValueToVirtualRegister now uses the entry node as the input chain dependency for new CopyToReg nodes instead of calling getRoot and depending on the most recent memory reference. Also, rename UnorderedChains to PendingExports and pull it up from being a local variable in SelectionDAGISel::BuildSelectionDAG to being a member variable of SelectionDAGISel, so that it doesn't have to be passed around to all the places that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
276dcbdc8db6614cfd5004dc7dc35e437ddf9c58 |
|
21-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Introduce a new node for holding call argument flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
23a1d0c1613002073e4340deb34449a61826c93c |
|
14-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Do not generate special entries in the dwarf eh table for nounwind calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
25eb043759c23b61769108f78382eb9701c41db2 |
|
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Don't try to extract an i32 from an f64. This getCopyToParts problem was noticed by the new LegalizeTypes infrastructure. In order to avoid this kind of thing in the future I've added a check that EXTRACT_ELEMENT is only used with integers. Once LegalizeTypes is up and running most likely BUILD_PAIR and EXTRACT_ELEMENT can be removed, in favour of using apints instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ef5d194aaa7d09937759447bceca0ff80bee1261 |
|
11-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Initial codegen support for functions and calls with multiple return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5b8f82e35b51bf007de07a7ca9347d804084ddf8 |
|
10-Mar-2008 |
Scott Michel <scottm@aero.org> |
Give TargetLowering::getSetCCResultType() a parameter so that ISD::SETCC's return ValueType can depend its operands' ValueType. This is a cosmetic change, no functionality impacted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b8cafe3427a168414400e5dfcbea78996792d2c3 |
|
10-Mar-2008 |
Dale Johannesen <dalej@apple.com> |
Increase ISD::ParamFlags to 64 bits. Increase the ByValSize field to 32 bits, thus enabling correct handling of ByVal structs bigger than 0x1ffff. Abstract interface a bit. Fixes gcc.c-torture/execute/pr23135.c and gcc.c-torture/execute/pr28982b.c in gcc testsuite (were ICE'ing on ppc32, quietly producing wrong code on x86-32.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4c55c633d9fd795e0e39642daa07e592c7a285aa |
|
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
remove an extraneous (and ugly) default argument, thanks Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4468c1fd1c3dcc2cca7b881eb9f37f018405d2d9 |
|
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
fp_round's produced by getCopyFromParts should always be exact, because they are produced by calls (which are known exact) and by cross block copies which are known to be produced by extends. This improves: define double @test2() { %tmp85 = call double asm sideeffect "fld0", "={st(0)}"() ret double %tmp85 } from: _test2: subl $20, %esp # InlineAsm Start fld0 # InlineAsm End fstpl 8(%esp) movsd 8(%esp), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $20, %esp #FP_REG_KILL ret to: _test2: # InlineAsm Start fld0 # InlineAsm End #FP_REG_KILL ret by avoiding a f64 <-> f80 trip git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d43d85ccc9cb8d4cd00e5cf38827f50b415255ff |
|
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
extend fp values with FP_EXTEND not FP_ROUND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
27b7db549e4c5bff4579d209304de5628513edeb |
|
08-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement x86 support for @llvm.prefetch. It corresponds to prefetcht{0|1|2} and prefetchnta instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c6f9a06238daebd41620ccc795f289c607393f00 |
|
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use the new APInt-enabled form of getConstant instead of converting an APInt into a uint64_t to call getConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5c80760fdf71659c5bdf45cd85d173df454dfb41 |
|
26-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor inline asm constraint matching code out of SDIsel into TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2e68b6f52d0979575b2f02ed29717d907ba0684c |
|
25-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert MaskedValueIsZero and all its users to use APInt. Also add a SignBitIsZero function to simplify a common use case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
08e78b18b8ef2c939ee95469662c98e23846d860 |
|
22-Feb-2008 |
Dale Johannesen <dalej@apple.com> |
Pass alignment on ByVal parameters, from FE, all the way through. It is now used for codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
69e6a8d5a8c486bcdd2c19238171b01d470ba45f |
|
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Make the clobber analysis a bit more smart: we only are careful about early clobbers if the clobber list contains a *register* not some thing like {memory}, {dirflag} etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0fe71e9bb19ff1781813184e41a8aaaae4dd2908 |
|
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Treat clobber operands like early clobbers: if we have any, we force sdisel to do all regalloc for an asm. This leads to gross but correct codegen. This fixes the rest of PR2078. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ab0b949e0e9de452f3b052b11634ab761e008b23 |
|
21-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f9853bc0d439d89c97979265593287c2ce81acb2 |
|
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for matching mem operands. This fixes PR1133, patch by Eli Friedman. This implements CodeGen/Generic/2008-02-20-MatchingMem.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7cbeb2431c7264d0848d1343f43914f970828ac7 |
|
21-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a (harmless) but where vregs were added to the used reg lists for inline asms. Fix PR2078 by marking aliases of registers used when a register is marked used. This prevents EAX from being allocated when AX is listed in the clobber set for the asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c40a84a87727608bbc5c68b3bf5c6d96fb22aa00 |
|
20-Feb-2008 |
Devang Patel <dpatel@apple.com> |
assert is more effective reminder then FIXME tag for unimplemented features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4c71dfe356716e6bc1993ef5efdced08b68fe612 |
|
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Update gcc 4.3 warnings fix patch with recent head changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
40a04216daaaee119665e023019c005306ec48ac |
|
19-Feb-2008 |
Devang Patel <dpatel@apple.com> |
Add GetResultInst. First step for multiple return value support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6 |
|
16-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
llvm.memory.barrier, and impl for x86 and alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
00fee65fd21f9615d1a604b8b7d42cd16a3f6b47 |
|
14-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
In TargetLowering::LowerCallTo, don't assert that the return value is zero-extended if it isn't sign-extended. It may also be any-extended. Also, if a floating point value was returned in a larger floating point type, pass 1 as the second operand to FP_ROUND, which tells it that all the precision is in the original type. I think this is right but I could be wrong. Finally, when doing libcalls, set isZExt on a parameter if it is "unsigned". Currently isSExt is set when signed, and nothing is set otherwise. This should be right for all calls to standard library routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
86ca3cacc5a56e862c8258ac9c9ee1e37598ebd8 |
|
13-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this node as soon as we create it in SDISel. Previously we would lower it in legalize. The problem with this is that it only exposes the argument loads implied by FORMAL_ARGUMENTs after legalize, so that only dag combine 2 can hack on them. This causes us to miss some optimizations because datatype expansion also happens here. Exposing the loads early allows us to do optimizations on them. For example we now compile arg-cast.ll to: _foo: movl $2147483647, %eax andl 8(%esp), %eax ret where we previously produced: _foo: subl $12, %esp movsd 16(%esp), %xmm0 movsd %xmm0, (%esp) movl $2147483647, %eax andl 4(%esp), %eax addl $12, %esp ret It might also make sense to do this for ISD::CALL nodes, which have implicit stores on many targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
014e04a5daeb312b1f0ebc1dd906ffc97c4abc5f |
|
12-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Generalize getCopyFromParts and getCopyToParts to handle arbitrary precision integers and any number of parts. For example, on a 32 bit machine an i50 corresponds to two i32 parts. getCopyToParts will extend the i50 to an i64 then write half of the i64 to each part; getCopyFromParts will combine the two i32 parts into an i64 then truncate the result to i50. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47024 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b988baccc229ef3e175905c999245d5544a0d384 |
|
11-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Generalize the handling of call and return arguments, in preparation for apint support. These changes are intended to have no functional effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6f0d024a534af18d9e60b3ea757376cd8a3a980e |
|
10-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename MRegisterInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a844bdeab31ef04221e7ef59a8467893584cc14d |
|
02-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1b08bbca5592351a940bcd164bdec724ee954326 |
|
01-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove the nasty LABEL hack with a much less evil one. Now llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bb81d97feb396a8bb21d074db1c57e9f66525f40 |
|
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1a0248690aaa9f7baaf1247e5f65a1c0c9e3783c |
|
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::FLT_ROUNDS to ISD::FLT_ROUNDS_ to avoid conflicting with the real FLT_ROUNDS (defined in <float.h>). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ff9b373e8f5006c629af81e2619778b4c4f5249e |
|
30-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert instruction at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ba2a0b960ea4c73d0f81557f63ae2ea126e08905 |
|
29-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Handle 'X' constraint in asm's better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5bab78527a946632cd9614daa0b9a82ee7b5e1cc |
|
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
fix long lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ae054385cfe9f2fcef2d77f26839615b1d3e48b |
|
24-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Forgot these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0bd4893a0726889b942405262e53d06cf3fe3be8 |
|
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
* Introduce a new SelectionDAG::getIntPtrConstant method and switch various codegen pieces and the X86 backend over to using it. * Add some comments to SelectionDAGNodes.h * Introduce a second argument to FP_ROUND, which indicates whether the FP_ROUND changes the value of its input. If not it is safe to xform things like fp_extend(fp_round(x)) -> x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
66fac79b899904ddd82e5ee354a6d370d80230f6 |
|
15-Jan-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
For PR1839: add initial support for __builtin_trap. llvm-gcc part is missed as well as PPC codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a41d7198035bdeaa3ba0a5840086d34ebcddac26 |
|
13-Jan-2008 |
Duncan Sands <baldrick@free.fr> |
Remove the assumption that byval has been applied to a pointer to a struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ce2247755e56f99a2377b64a1a9d393726582b85 |
|
07-Jan-2008 |
Gordon Henriksen <gordonhenriksen@mac.com> |
Enabling the target-independent garbage collection infrastructure by hooking it up to the various compiler pipelines. This doesn't actually add support for any GC algorithms, which means it temporarily breaks a few tests. To be fixed shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
84bc5427d6883f73cfeae3da640acd011d35c006 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9ce2e9d5a07cb3e0176cb32838231243829d67c5 |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
use simplified operand addition methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6f74b48862948ebb83c7bf7036a76c9e84543fb4 |
|
19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Simplify LowerCallTo by using a callsite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
481dc721c37a3da0b3cc88191d01fe5b523625ee |
|
19-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
The C++ exception handling personality function wants to know about calls that cannot throw ('nounwind'): if such a call does throw for some reason then the personality will terminate the program. The distinction between an ordinary call and a nounwind call is that an ordinary call gets an entry in the exception table but a nounwind call does not. This patch sets up the exception table appropriately. One oddity is that I've chosen to bracket nounwind calls with labels (like invokes) - the other choice would have been to bracket ordinary calls with labels. While bracketing ordinary calls is more natural (because bracketing by labels would then correspond exactly to getting an entry in the exception table), I didn't do it because introducing labels impedes some optimizations and I'm guessing that ordinary calls occur more often than nounwind calls. This fixes the gcc filter2 eh test, at least at -O0 (the inliner needs some tweaking at higher optimization levels). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fd7b326bea39c077eea8d378156bcf09051cc4ec |
|
17-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Make invokes of inline asm legal. Teach codegen how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a3355ffb3d30d19d226bbb75707991c60f236e37 |
|
03-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Rather than having special rules like "intrinsics cannot throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
afa3b6da11bc05281bcf09e45de9e037e0ee5011 |
|
28-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Add some convenience methods for querying attributes, and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dc024674ff96820d6020757b48d47f46d4c07db2 |
|
27-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1146: parameter attributes are longer part of the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b3d9cdb6776355ffba1c43809094f29e4d57a45f |
|
27-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
err, no really. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5ebfaa2c9d528d72903641653171eef73f0c547b |
|
27-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
don't depend on ADL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
27a6c7380fa4dfc8e1837a8dd67967d063b26544 |
|
24-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
Several changes: 1) Change the interface to TargetLowering::ExpandOperationResult to take and return entire NODES that need a result expanded, not just the value. This allows us to handle things like READCYCLECOUNTER, which returns two values. 2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES. 3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new ExpandOperationResult. This makes the result simpler and fully general. 4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes. 5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM i64 shifts, allowing them to work with LegalizeDAGTypes. 6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT, allowing them to work with LegalizeDAGTypes. LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when type legalization in LegalizeDAG is ifdef'd out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
917c2a6ff2cfcd1263a5dd80c54336754c553ace |
|
16-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement necessary bits for flt_rounds gcc builtin. Codegen bits and llvm-gcc support will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
560a737e073788463b9275c5e92ebc12f0ea62a2 |
|
15-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
This assertion was bogus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eb57ea7ea2378b77bc995371c1888193b960cd03 |
|
05-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Make labels work in asm blocks; allow labels as parameters. Rename ValueRefList to ParamList in AsmParser, since its only use is for parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
111c4f897eb9a42eac6aceea830b8e76058afd73 |
|
02-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Add std:: to sort calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b61f2f061feefd79623fadd21eee4f195b0b8e56 |
|
02-Nov-2007 |
Dan Gohman <gohman@apple.com> |
Change illegal uses of ++ to uses of STLExtra.h's next function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
514ab348fddcdffa8367685dc608b2f8d5de986d |
|
01-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
984e986929c34f9fa41ad33e3a4f19816f80c1ad |
|
26-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
- Remove the hacky code that forces a memcpy. Alignment is taken care of in the FE. - Explicitly pass in the alignment of the load & store. - XFAIL 2007-10-23-UnalignedMemcpy.ll because llc has a bug that crashes on unaligned pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
30eeb3c6c00088ecdcaae8850fbaaa933a316c32 |
|
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Fix comment and use the "Size" variable that's already provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8b1c68cee4ddf42b4b57d4224f945ad9e9d4a779 |
|
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
If there's an unaligned memcpy to/from the stack, don't lower it. Just call the memcpy library function instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
803396fce26270fae6ff0dfba4813f4d4e5002fd |
|
24-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
This broke lots. Reverting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
de09040946b4aa9bdc70057d65f840685ac31fef |
|
23-Oct-2007 |
Bill Wendling <isanbard@gmail.com> |
Lowering a memcpy to the stack is killing PPC. The ARM and X86 backends already have their own custom memcpy lowering code. This code needs to be factored out into a target-independent lowering method with hooks to the backend. In the meantime, just call memcpy if we're trying to copy onto a stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1c4d492b944768ded5356587779045cc346409d7 |
|
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
rename ExpandOperation to ExpandOperationResult, as suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5c0d6ed325417baa5d119af9c2b6790231d8565f |
|
19-Oct-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for byval function whose argument is not 32 bit aligned. To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f58dac31690f37c8f93328f8470298e1fe7862cc |
|
19-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add a new target hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
01d029b82cb08367d81aa10cdc94d05360466649 |
|
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
One mundane change: Change ReplaceAllUsesOfValueWith to *optionally* take a deleted nodes vector, instead of requiring it. One more significant change: Implement the start of a legalizer that just works on types. This legalizer is designed to run before the operation legalizer and ensure just that the input dag is transformed into an output dag whose operand and result types are all legal, even if the operations on those types are not. This design/impl has the following advantages: 1. When finished, this will *significantly* reduce the amount of code in LegalizeDAG.cpp. It will remove all the code related to promotion and expansion as well as splitting and scalarizing vectors. 2. The new code is very simple, idiomatic, and modular: unlike LegalizeDAG.cpp, it has no 3000 line long functions. :) 3. The implementation is completely iterative instead of recursive, good for hacking on large dags without blowing out your stack. 4. The implementation updates nodes in place when possible instead of deallocating and reallocating the entire graph that points to some mutated node. 5. The code nicely separates out handling of operations with invalid results from operations with invalid operands, making some cases simpler and easier to understand. 6. The new -debug-only=legalize-types option is very very handy :), allowing you to easily understand what legalize types is doing. This is not yet done. Until the ifdef added to SelectionDAGISel.cpp is enabled, this does nothing. However, this code is sufficient to legalize all of the code in 186.crafty, olden and freebench on an x86 machine. The biggest issues are: 1. Vectors aren't implemented at all yet 2. SoftFP is a mess, I need to talk to Evan about it. 3. No lowering to libcalls is implemented yet. 4. Various operations are missing etc. 5. There are FIXME's for stuff I hax0r'd out, like softfp. Hey, at least it is a step in the right direction :). If you'd like to help, just enable the #ifdef in SelectionDAGISel.cpp and compile code with it. If this explodes it will tell you what needs to be implemented. Help is certainly appreciated. Once this goes in, we can do three things: 1. Add a new pass of dag combine between the "type legalizer" and "operation legalizer" passes. This will let us catch some long-standing isel issues that we miss because operation legalization often obfuscates the dag with target-specific nodes. 2. We can rip out all of the type legalization code from LegalizeDAG.cpp, making it much smaller and simpler. When that happens we can then reimplement the core functionality left in it in a much more efficient and non-recursive way. 3. Once the whole legalizer is non-recursive, we can implement whole-function selectiondags maybe... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
48abc5cf6ba6d53513034aa8c68b0a9abd748190 |
|
12-Oct-2007 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Corrected many typing errors. And removed 'nest' parameter handling for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a9b511187b5450ec2e241f45b640358bfdc9c42c |
|
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Fix some corner cases with vectors in copyToRegs and copyFromRegs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac9385a5557ee2f34a509d39c58a8557a0ff686d |
|
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add intrinsics for sin, cos, and pow. These use llvm_anyfloat_ty, and so may be overloaded with vector types. And add a testcase for codegen for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c85e1716f0e45e4c18a9ef2fbe431a51ac3a4252 |
|
11-Oct-2007 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Added tail call optimization to the x86 back end. It can be enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
417e11b9bf625b3626f8765d44248927fb200906 |
|
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
In -debug mode, dump SelectionDAGs both before and after the optimization passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9ab7fb3ba47442d521a5bed09a27a5e8e7a786ed |
|
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Rewrite sqrt and powi to use anyfloat. By popular demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a7ac2bd4076096bb3a9986dd5a44f20c7f715518 |
|
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Fix stride computations for long double arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
317096ab3710fda0960be58804e9f80c800340f6 |
|
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add sqrt and powi intrinsics for long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2f42901dff5d0b4a9bb571a2f57157c296584557 |
|
26-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Enable codegen for long double abs, sin, cos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9e3d3abd937c9bb79d56d25ec0e0724c7cbba67c |
|
15-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Remove the assumption that FP's are either float or double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f7331b3dd72409e644833ecaf62a0f6db03c97ee |
|
11-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fold the adjust_trampoline intrinsic into init_trampoline. There is now only one trampoline intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
87b51bc2b0e9bced27d6fd95573a3f21691a261c |
|
10-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
1. Don't call Value::getName(), which is slow. 2. Lower calls to fabs and friends to FABS nodes etc unless the function has internal linkage. Before we wouldn't lower if it had a definition, which is incorrect. This allows us to compile: define double @fabs(double %f) { %tmp2 = tail call double @fabs( double %f ) ret double %tmp2 } into: _fabs: fabs f1, f1 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
588af2fb99bf255c350fcfc582e475cf4840c606 |
|
07-Sep-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for having different alignment for objects on call frames. The x86-64 ABI states that objects passed on the stack have 8 byte alignment. Implement that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8806c7b1f5317a9679a5779ffc08c552f2091bce |
|
07-Sep-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register liveins and we let frontend solve type issue, not lowering code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
43421b3dd70af5b70e71816521f37502c397cc65 |
|
06-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Next round of APFloat changes. Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
57810cdac4c842b4b395d2a0b2fae406aacb3ee4 |
|
05-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fix PR1628. When exception handling is turned on, labels are generated bracketing each call (not just invokes). This is used to generate entries in the exception table required by the C++ personality. However it gets in the way of tail-merging. This patch solves the problem by no longer placing labels around ordinary calls. Instead we generate entries in the exception table that cover every instruction in the function that wasn't covered by an invoke range (the range given by the labels around the invoke). As an optimization, such entries are only generated for parts of the function that contain a call, since for the moment those are the only instructions that can throw an exception [1]. As a happy consequence, we now get a smaller exception table, since the same region can cover many calls. While there, I also implemented folding of invoke ranges - successive ranges are merged when safe to do so. Finally, if a selector contains only a cleanup, there's a special shorthand for it - place a 0 in the call-site entry. I implemented this while there. As a result, the exception table output (excluding filters) is now optimal - it cannot be made smaller [2]. The problem with throw filters is that folding them optimally is hard, and the benefit of folding them is minimal. [1] I tested that having trapping instructions (eg divide by zero) in such a region doesn't cause trouble. [2] It could be made smaller with the help of higher layers, eg by having branch folding reorder basic blocks ending in invokes with the same landing pad so they follow each other. I don't know if this is worth doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a34d395358ea8aa039566926650a12d0962ded38 |
|
04-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1632. EHSELECTION always produces a i32 value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3e1a7aef17575d9c7058a035449d57e3c7295ed0 |
|
28-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used by scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5f43f92c69aae9837064cf08291db1b36a82789f |
|
27-Aug-2007 |
Dan Gohman <gohman@apple.com> |
If the source and destination pointers in an llvm.memmove are known to not alias each other, it can be translated as an llvm.memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6590b0457c5e28a7336ae31de194953d8127217a |
|
27-Aug-2007 |
Duncan Sands <baldrick@free.fr> |
There is an impedance matching problem between LLVM and gcc exception handling: if an exception unwinds through an invoke, then execution must branch to the invoke's unwind target. We previously tried to enforce this by appending a cleanup action to every selector, however this does not always work correctly due to an optimization in the C++ unwinding runtime: if only cleanups would be run while unwinding an exception, then the program just terminates without actually executing the cleanups, as invoke semantics would require. I was hoping this wouldn't be a problem, but in fact it turns out to be the cause of all the remaining failures in the LLVM testsuite (these also fail with -enable-correct-eh-support, so turning on -enable-eh didn't make things worse!). Instead we need to append a full-blown catch-all to the end of each selector. The correct way of doing this depends on the personality function, i.e. it is language dependent, so can only be done by gcc. Thus this patch which generalizes the eh.selector intrinsic so that it can handle all possible kinds of action table entries (before it didn't accomodate cleanups): now 0 indicates a cleanup, and filters have to be specified using the number of type infos plus one rather than the number of type infos. Related gcc patches will cause Ada to pass a cleanup (0) to force the selector to always fire, while C++ will use a C++ catch-all (null). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
48884cd80b52be1528618f2e9b3425ac24e7b5ca |
|
25-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
rename isOperandValidForConstraint to LowerAsmOperandForConstraint, changing the interface to allow for future changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2f597bd09ec0a55689c9fd6d8999bde4fdf8688e |
|
23-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Perform correct codegen for eh_dwarf_cfa intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
21485be444bd132941faf4e5653ac34b3ec74040 |
|
20-Aug-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Partial implementation of calling functions with byval arguments: *) The needed information is propagated to the DAG *) The X86-64 backend detects it and aborts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4515779fa39481649780bdd24fc966e89ec76edf |
|
17-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
- If a dynamic_stackalloc alignment requirement is <= stack alignment, then the alignment argument is ignored. - *Always* round up the size of the allocation to multiples of stack alignment to ensure the stack ptr is never left in an invalid state after a dynamic_stackalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
25ac7e8364f475597e2a6f3628fce839583e1f45 |
|
10-Aug-2007 |
Dan Gohman <gohman@apple.com> |
Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT to use an intptr ValueType instead of i32 for the index operand in getCopyToParts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
594d37e21aea4ef841d9ee5d9c328c4bf1c6bed7 |
|
10-Aug-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
propagate struct size and alignment of byval arguments to the DAG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6994040a952e5fb27605eb3cf29ed86c4e59cf62 |
|
04-Aug-2007 |
Chandler Carruth <chandlerc@gmail.com> |
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b15e49597f031fdd41fdec2887a3c24c0ea430d8 |
|
02-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
don't redefine a parameter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
be444ed6dbc2a6f36feab84b527a21aa0df9f808 |
|
30-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix a bug in getCopyFromParts turned up in the testcase for PR1132. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
36397f50343639ce9a25996f2d790c656791ab92 |
|
27-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Support for trampolines, except for X86 codegen which is still under discussion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dc9b3d0bb5ed3a3f59cad61e264f0ec43c946459 |
|
25-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Add const to CanBeFoldedBy, CheckAndMask, and CheckOrMask. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
48613b930a34d6f98e7d3dd86aa49cc3dbd61c85 |
|
18-Jul-2007 |
Dan Gohman <gohman@apple.com> |
It's not necessary to do rounding for alloca operations when the requested alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
07a96765daedf180a7102d39fe56c499878312b7 |
|
16-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix comments about vectors to use the current wording. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2365f51ed03afe6993bae962fdc2e5a956a64cd5 |
|
14-Jul-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Long live the exception handling! This patch fills the last necessary bits to enable exceptions handling in LLVM. Currently only on x86-32/linux. In fact, this patch adds necessary intrinsics (and their lowering) which represent really weird target-specific gcc builtins used inside unwinder. After corresponding llvm-gcc patch will land (easy) exceptions should be more or less workable. However, exceptions handling support should not be thought as 'finished': I expect many small and not so small glitches everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e7e7d0d7e39d0c7c659d26b97e8081fce0fcd749 |
|
13-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Skeleton of post-RA scheduler; doesn't do anything yet. Change name of -sched option and DEBUG_TYPE to pre-RA-sched; adjust testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
532dc2e1f2473b16b48566c1cbc9eefe94a4e58e |
|
09-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Change getCopyToParts and getCopyFromParts to always use target-endian register ordering, for both physical and virtual registers. Update the PPC target lowering for calls to expect registers for the call result to already be in target order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f664e41b201bad27ed3661bf50cd71f54242c114 |
|
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
The exception handling intrinsics return values, so must be lowered to a value, not nothing at all. Subtle point: I made eh_selector return 0 and eh_typeid_for return 1. This means that only cleanups (destructors) will be run as the exception unwinds [if eh_typeid_for returned 0 then it would be as if the first catch always matched, and the corresponding handler would be run], which is probably want you want in the CBE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1aa7efbd2c98e761f50992197473304b99257ca9 |
|
06-Jul-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add the byval attribute git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
902919541fc2eb0e914390d9696088cfec3733df |
|
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Remove propagateEHRegister in favour of a more limited fix, that is adequate while PR1508 remains unresolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b4fd45e2fc4973214227fbaa96975d9fcc19ba42 |
|
06-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Remove ExtractGlobalVariable - use StripPointerCasts instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
86da6600aec9b8f1c3fbae157414bf1648eb639c |
|
06-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Workaround of getCopyToRegs and getCopyFromRegs bugs for big-endian machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6183f78cf8c6f56cc436f19120acf2a7856cb9db |
|
05-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Add a parameter to getCopyToParts and getCopyFromParts to specify whether endian swapping should be done, and update the code to use it. This fixes some register ordering issues on big-endian systems, such as PowerPC, introduced by the recent illegal by-val arguments changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cf26d7ccac1ad052b750edec36b13bc9ea8f70d7 |
|
04-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Extend eh.selector to support both catches and filters. Drop the eh.filter intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
849f214a4e3676e41168b0c5398165c4d4fb99f8 |
|
03-Jul-2007 |
Dale Johannesen <dalej@apple.com> |
Fix for PR 1505 (and 1489). Rewrite X87 register model to include f32 variants. Some factoring improvments forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
27a70be55f8b63181598d144d034b396402be66e |
|
02-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Replace ExpandScalarFormalArgs and ExpandScalarCallArgs with the newly refactored getCopyFromParts and getCopyToParts, which are more general. This effectively adds support for lowering illegal by-val vector call arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c45453fa1db7a5c520208fb6ffbc9fdb823b0526 |
|
29-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Only do FNEG xform when the vector type is a floating point type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a2a488594df335efa17bc253436465c2ae984f91 |
|
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Remove unnecessary attributions in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cfacc8f5d25f38112eee836530004f7816439765 |
|
29-Jun-2007 |
David Greene <greened@obbligato.org> |
Fix reference to cached end iterator invalidated by an erase operation. Uncovered by _GLIBCXX_DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b6f5b00c3bad3415d3f2ee1a6d5ee5a6f66a4540 |
|
29-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Add new TargetLowering code to provide the final register type that an illegal value type will be transformed to, for code that needs the register type after all transformations instead of just after the first transformation. Factor out the code that uses this information to do copy-from-regs and copy-to-regs for various purposes into separate functions so that they are done consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e47c333a12094296e54571ed1ac511a04d74840d |
|
27-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Partial fix for PR1502: If a EH register is needed in a successor of landing pad, add it as livein to all the blocks in the paths between the landing pad and the specified block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8c8c5fcbd757b5c44fa7ad9af038a2f2d950b624 |
|
27-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Use getVectorTypeBreakdown in FunctionLoweringInfo::CreateRegForValue to compute the number and type of registers needed for vector values instead of computing it manually. This fixes PR1529. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7f32156bb9c017b71971c52fac892fa7b9b06dd2 |
|
25-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Generalize MVT::ValueType and associated functions to be able to represent extended vector types. Remove the special SDNode opcodes used for pre-legalize vector operations, and the special MVT::Vector type used with them. Adjust lowering and legalize to work with the normal SDNode kinds instead, and to use the normal MVT functions to work with vector types instead of using the two special operands that the pre-legalize nodes held. This allows pre-legalize and post-legalize DAGs, and the code that operates on them, to be more consistent. Pre-legalize vector operators can be handled more consistently with scalar operators. And, -view-dag-combine1-dags and -view-legalize-dags now look prettier for vector code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ea859be53ca13a1547c4675549946b74dc3c6f41 |
|
22-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b9f10196961ebe5b5573a5705048a5a8a6b56bb3 |
|
21-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename TargetLowering::getNumElements and friends to TargetLowering::getNumRegisters and similar, to avoid confusion with the actual number of elements for vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
24e5aada7d112447c41c12008f7daf1fc15a24bc |
|
16-Jun-2007 |
Tanya Lattner <tonic@nondot.org> |
Codegen support (stripped out) for the annotate attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c2c28fc24cc0c7886da93939b0279d3f444b35dc |
|
15-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/X86/inline-asm-x-scalar.ll:test4, by retaining regclass info for tied register constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f40708223e409a152834b1553c6883ff2035b957 |
|
15-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Workaround for PR1508. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
51eaa86758338d5935c0eff0469c418b1256aba7 |
|
15-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename MVT::getVectorBaseType to MVT::getVectorElementType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ea632439d4259254670dc4a27b13d6f9370216a8 |
|
13-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Only correctly lower exception handing intrinsics if exception handling is turned on. Likewise for scanning of invokes to mark landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6595635175764f402e7a5e53216c8d46bdce8c28 |
|
13-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR and VCONCAT_VECTORS. Use these for CopyToReg and CopyFromReg legalizing in the case that the full register is to be split into subvectors instead of scalars. This replaces uses of VBIT_CONVERT to present values as vector-of-vector types in order to make whole subvectors accessible via BUILD_VECTOR and EXTRACT_VECTOR_ELT. This is in preparation for adding extended ValueType values, where having vector-of-vector types is undesirable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2046e12f022ad098fe84776d55f4ea1a5e342c85 |
|
13-Jun-2007 |
Dan Gohman <gohman@apple.com> |
When creating CopyFromReg nodes, always use legal types. And use the correct types for the result vector, even though it is currently bitcasted to a different type immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f19f6bb31e45c5fc34b17d89d80ed938f61ff047 |
|
13-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
The fix that was applied for PR1224 stops the compiler crashing but breaks exception handling. The problem described in PR1224 is that invoke is a terminator that can produce a value. The value may be needed in other blocks. The code that writes to registers values needed in other blocks runs before terminators are lowered (in this case invoke) so asserted because the value was not yet available. The fix that was applied was to do invoke lowering earlier, before writing values to registers. The problem this causes is that the code to copy values to registers can be output after the invoke call. If an exception is raised and control is passed to the landing pad then this copy-code will never execute. If the value is needed in some code path reached via the landing pad then that code will get something bogus. So revert the original fix and simply skip invoke values in the general copying to registers code. Instead copy the invoke value to a register in the invoke lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
62000eee7de696cad5e3a307de395c77a61350ee |
|
07-Jun-2007 |
Dale Johannesen <dalej@apple.com> |
Do not change the size of function arguments. PR 1489. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9fac0b5ff24e733072bdde68c7f34590c1892922 |
|
06-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Additional fix for PR1422: make sure the landing pad label is placed in the correct machine basic block - do not rely on the eh.exception intrinsic being in the landing pad: the loop optimizers can move it out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
73ef58ab92d5cd23b119b7f206e5f8a8c529098d |
|
02-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Integrate exception filter support and exception catch support. This simplifies the code in DwarfWriter, allows for multiple filters and makes it trivial to specify filters accompanied by cleanups or catch-all specifications (see next patch). What a deal! Patch blessed by Anton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
398898cc6a4cba85d908444a2bb42b1a9fc3df2a |
|
01-Jun-2007 |
Duncan Sands <baldrick@free.fr> |
Since TypeInfos are passed as i8 pointers, a NULL TypeInfo should be passed as a null i8 pointer not as a 0 i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fa73ea2d9fd785a214256ca44488407b26c5a3db |
|
24-May-2007 |
Dan Gohman <gohman@apple.com> |
Minor comment cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
070280e97f801ae809ddcc7930c153929f253997 |
|
23-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Mark all calls as "could throw", when exceptions are enabled. Emit necessary LP info too. This fixes PR1439 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b55757ec5f6f0218342a8910e1bbd9f018adc7d7 |
|
18-May-2007 |
Dan Gohman <gohman@apple.com> |
Qualify several calls to functions in the MVT namespace, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c90233b836c5d00045bbe7ca3d5d92df4825f5a1 |
|
15-May-2007 |
Chris Lattner <sabre@nondot.org> |
Fix some subtle issues handling immediate values. This fixes test/CodeGen/ARM/2007-05-14-InlineAsmCstCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7294b58ecdb430d1473d0a9220a234e62a710d54 |
|
09-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Do not assert, when case range split metric is zero and JTs are not allowed: just emit binary tree in this case. This fixes PR1403. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4fee7034d5a9dae46e78ff300fd6dbf2cdfcb8f9 |
|
07-May-2007 |
Duncan Sands <baldrick@free.fr> |
Parameter attributes on invoke calls were being lost due to the wrong attribute index being used. Fix proposed by Anton Korobeynikov, who asked me to implement and commit it for him. This is PR1398. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b682448ebd8074dd63b40d41204fc69a417e0eac |
|
06-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Detabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3b346368deddbe3cb853b29472de46bc9b58d6b8 |
|
04-May-2007 |
Duncan Sands <baldrick@free.fr> |
A bitcast of a global variable may have been constant folded to a GEP - handle this case too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1997473cf72957d0e70322e2fe6fe2ab141c58a6 |
|
03-May-2007 |
Devang Patel <dpatel@apple.com> |
Drop 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6ad8256d769f352103b6101c7090e4bfc0389330 |
|
03-May-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly set arguments bitwidth of EHSELECT node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3e15bf33e024b9df9e89351a165acfdb1dde51ed |
|
02-May-2007 |
Devang Patel <dpatel@apple.com> |
Use 'static const char' instead of 'static const int'. Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
794fd75c67a2cdc128d67342c6d88a504d186896 |
|
01-May-2007 |
Devang Patel <dpatel@apple.com> |
Do not use typeinfo to identify pass in pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e7cf56aeeebed7423402fdf84c5b1aaf6830316e |
|
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Continue refactoring inline asm code. If there is an earlyclobber output register, preallocate all input registers and the early clobbered output. This fixes PR1357 and CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bf996f1d5e441c7504ff155d818190f593d54672 |
|
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
refactor GetRegistersForValue to take OpInfo as an argument instead of various pieces of it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ff90dc1c8aaa5d9be94cdca8c4a7e71f45da8fd |
|
30-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
refactor some code, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6995cf6015580eeab07a1c671fca180084a1325e |
|
29-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
generalize aggregate handling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
09e4b7e1b7d624a3010ace2c23783e77b366fa7e |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
memory operands that have a direct operand should have their stores created before the copies into physregs are done. This avoids having flag operands skip the store, causing cycles in the dag at sched time. This fixes infinite loops on these tests: test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll for PR1308 test/CodeGen/PowerPC/2007-01-29-lbrx-asm.ll test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll test/CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll for PR828 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c83994e5d4c75b4dc3d0e2ac52972a4fff816eb6 |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate more redundant constraint type analysis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2a600be22618b09165f3fe2a88bbe2fb71bc478d |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
merge constraint type analysis stuff together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0c58340aead6880876076ee4e3abf3aca92a2647 |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Significant refactoring of the inline asm stuff, to support future changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
44b2c5098f5cf766b4eff43d9eb0d8a9a143e7d8 |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
memory inputs to an inline asm are required to have an address available. If the operand is not already an indirect operand, spill it to a constant pool entry or a stack slot. This fixes PR1356 and CodeGen/X86/2007-04-27-InlineAsm-IntMemInput.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f2f3cd5129a1eef6034ce09314b10f3a1e1abaf6 |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2007-04-27-LargeMemObject.ll and CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b01731812284e5396dcb6dd3b0eae769fcaed6d1 |
|
28-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix this to match change to InlineAsm class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
99f9a77c496e8dc65fa7d9f693de9bec9aa574e5 |
|
27-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
improve EH global handling, patch by Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
64c0f84c725a5a21c4753575347f24ce0e250088 |
|
26-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
enable Anton's shift/and switch lowering stuff! It now passes ppc bootstrap successfully! woohoo... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ab8fd404034439ba23230df512a8a2779e5d48a3 |
|
26-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fixx off-by-one bug, which prevents llvm-gcc bootstrap on ppc32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c1a3520580c11f5d3430d5dab1e8006f8a0c7dc2 |
|
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
This was lefted out. Fixed sumarray-dbl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6266c18ea12b42bd9b262a1f4f8c3d7a85130118 |
|
25-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
allow support for 64-bit stack objects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
95b39550344bad0d15d1ffa7afc300eb1533ed19 |
|
24-Apr-2007 |
Bill Wendling <isanbard@gmail.com> |
Assertion when using a 1-element vector for an add operation. Get the real vector type in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f147a8d56e0811525916f4d8cd5dd1777f834a85 |
|
24-Apr-2007 |
Scott Michel <scottm@aero.org> |
Use '-1U' where '-1UL' is obvious overkill, eliminating gcc warnings about tests always being true in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
95c218a83ecf77590b9dc40c636720772d2b5cd7 |
|
23-Apr-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
PR400 phase 2. Propagate attributed load/store information through DAGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c67bdc288aac130d88630f7fa95ceca6bcf95077 |
|
21-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Revert Christopher Lamb's load/store alignment changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2330e4d4c4f8008d17f5a38ac0d7b04e139d4131 |
|
21-Apr-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
add support for alignment attributes on load/store instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1c35968d4d622c30b82698506a6fa128f012a504 |
|
14-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
disable switch lowering using shift/and. It still breaks ppc bootstrap for some reason. :( Will investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e01017bba4f44ab65eba11fd065c9cd16b5edb33 |
|
14-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix PR1325: Case range optimization was performed in the case it shouldn't. Also fix some "latent" bug on 64-bit platforms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ff981749bed4347dfe7196ac066be1d4f51ea1f |
|
14-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
disable shift/and lowering to work around PR1325 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8085bcfdca515a359c746ea475a3b8e9cac1c077 |
|
13-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix PR1323 : we haven't updated phi nodes in good manner :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3a508c94a6c6f124e8b0549358ce76deb92ab662 |
|
12-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
the result of an inline asm copy can be an arbitrary VT that the register class supports. In the case of vectors, this means we often get the wrong type (e.g. we get v4f32 instead of v8i16). Make sure to convert the vector result to the right type. This fixes CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f75b874957aa61e81804e266daf671aa9dcc75b9 |
|
12-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1284: Implement the "part_set" intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
18da0720887527ed570e9703ae5f290beb491ee1 |
|
11-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1146: Put the parameter attributes in their own ParamAttr name space. Adjust the rest of llvm as a result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c6eb6d72550aa3f7241141e3e28520dfef738c81 |
|
10-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
apparently some people commit without building the tree, or they forget to commit a LOT of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2da8da46ba48b857a2e3e71a97c18ebb23c14af5 |
|
10-Apr-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
No longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
54e2b142be6ac759e87dde8a643a7beaff0365df |
|
09-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use integer log for metric calculation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
efc366263659db05ddc5e14532946cb9213bcdd6 |
|
09-Apr-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4198c58c716cbe4516ac3a1a407a3cd52548bc3b |
|
09-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Next stage into switch lowering refactoring 1. Fix some bugs in the jump table lowering threshold 2. Implement much better metric for optimal pivot selection 3. Tune thresholds for different lowering methods 4. Implement shift-and trick for lowering small (<machine word length) cases with few destinations. Good testcase will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5694b6e90eaf94fa7a21f101a8e4424d813a85ce |
|
09-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1146: Adapt handling of parameter attributes to use the new ParamAttrsList class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1a6acc214dc066ea08365b605e109203e9164068 |
|
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
implement CodeGen/X86/inline-asm-x-scalar.ll:test3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4b993b19f9837fdf2db55a3e042e8adab3d63c26 |
|
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1316 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
921169b103497001e1d22927f4fd1682d43eba57 |
|
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Fix for CodeGen/X86/2007-04-08-InlineAsmCrash.ll and PR1314 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e303ac9052b9d03eff236469eb560e5b5da7fae2 |
|
06-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
minor comment fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3f108cb5558a80a63711114d819358f19773c057 |
|
05-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Change the bit_part_select (non)implementation from "return 0" to abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
addd11d98ee3a3013c66d3fd25ee2cfb09b3c7bd |
|
05-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5502bf67cd49221583c15472150905ce13184d36 |
|
04-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Properly emit range comparisons for switch cases, where neighbour cases go to the same destination. Now we're producing really good code for switch-lower-feature.ll testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4f9c4d29affaae0b4a3315ffff20e9130ecd17f |
|
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Adjust for changes in the bit counting intrinsics. They all return i32 now so we have to trunc/zext the DAG node accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c8d288f8fa9e46199a29e1954550c980f184bd1c |
|
31-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
move a bunch of code out of the sdisel pass into its own opt pass "codegenprepare". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7aff11a1eddcebe9936e14836cd527c46acde651 |
|
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Scale 1 is always ok. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
baeccc8741958c0d27f1ba1d162468f615b565ac |
|
28-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
GEP index sinking fixes: 1) Take address scale into consideration. e.g. i32* -> scale 4. 2) Examine all the users of GEP. 3) Generalize to inter-block GEP's (no longer uses loopinfo). 4) Don't do xform if GEP has other variable index(es). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dd433210797bc13513989a033e488d4e19442723 |
|
27-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b17b08d1f2cdbc3aba28e31755d7a5c3c55e4c3a |
|
27-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Split big monster into small helpers. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d0083bc5eccd2f776788cb67e589edb456e59a7e |
|
27-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
SDISel does not preserve all, it changes CFG and other info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3a84b9baf67c938454840d10d9e53269c755cd3e |
|
25-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
First step of switch lowering refactoring: perform worklist-driven strategy, emit JT's where possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5df99b376f38a2a0aaa2fc63254cf0306eef3c1b |
|
25-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Implement support for vector operands to inline asm, implementing CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4234f57fa02b1f04a9f52a7b3c2aa22d32ac521c |
|
25-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
switch TargetLowering::getConstraintType to take the entire constraint, not just the first letter. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ecb7a77885b174cf4d001a9b48533b3979e7810d |
|
22-Mar-2007 |
Dan Gohman <gohman@apple.com> |
Change uses of Function::front to Function::getEntryBlock for readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
29a68fb5b733119dd8295a4f7c7d069b9f78f0a3 |
|
20-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
db264ae07f451cbd5bb33d528ae00e4910ce386b |
|
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use SmallSet instead of std::set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2edd5638255dbbcdad55ca724953e155ab13b5d1 |
|
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
If sdisel has decided to sink GEP index expression into any BB. Replace all uses in that BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9e2d86add8ae62026d2f07ea1b33d6e1ae418449 |
|
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Turn on GEP index sinking by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9f5ead9601e110b2e67123d73647cbd88308c379 |
|
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Stupid bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3cd4e5095b06b2be94a0cab3060272aae3460167 |
|
16-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Sink a binary expression into its use blocks if it is a loop invariant computation used as GEP indexes and if the expression can be folded into target addressing mode of GEP load / store use types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6dfc6806bf4091cc736312a3ceca6225f81ef63e |
|
08-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
implement support for floating point constants used as inline asm memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b4ddac9bf7b9d4aa7267702f375647b370ad32f4 |
|
08-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
make this fail even in non-assert builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d0b82b301d700217a716526f9329bb031e0d6578 |
|
07-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Refactoring of formal parameter flags. Enable properly use of zext/sext/aext stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0db79d86de74c315813d60f51ed842c0ba0f34dd |
|
06-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Enumerate SDISel formal parameter attributes. Make use of new enumeration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ca5183d445954a9b2a570d6bbba1bc2b00ad6442 |
|
05-Mar-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0b4711bd94e0723735848ad999bccfb1fb61eeb9 |
|
01-Mar-2007 |
Jim Laskey <jlaskey@mac.com> |
Lower eh filter intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
64ce0ca90d358da4984a089404dc2dabe45d05f1 |
|
28-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
MERGE_VALUES unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ddf53e45b29087c57e0c864c93f86d5e99182d55 |
|
26-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
track signedness of formal argument, though we have a fixme here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
183f47fb1aa30ba9a56e645c35a7d798cf7e467c |
|
25-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Fix for PR1224. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
251db1890c1fe03d02ee878ada8129537844d031 |
|
25-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
optimize duplicate ValueMap lookups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7a1de987a69a059ba67779ee8fca3b391e8aa253 |
|
24-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Deal with cases when MMI is not requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1da20a71d1bbabc472f281208be77475550be751 |
|
23-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Handle improper cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cbfdb7b871ddb383c9b323d4b9fba112ad500214 |
|
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Tighten up error checking of args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
735b6f8cc3abe3d6939d44a39d2e512c32716538 |
|
22-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Handle lowering invoke to call correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b180aa17539e14a5430d020bbc7de83c79b7fc4b |
|
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Selection and lowering for exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac9dcb94dde5f166ee29372385c0e3b695227ab4 |
|
15-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1195: Change use of "packed" term to "vector" in comments, strings, variable names, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e |
|
15-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1195: Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c661d61d82b2b512ad9670b248bbacb4eda5d293 |
|
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
fix a warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
21840b1c5c8e0fcedf236f0c2b95e9e147859a8e |
|
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Refix CodeGen/Generic/switch-lower.ll. In contrast to my previous patch, this doesn't miscompile lots of programs :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d2b7cec527a0efa552628378ebca7a8ca63bb45d |
|
14-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Generalize TargetData strings, to support more interesting forms of data. Patch by Scott Michel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ae4f99d8430f06cfbc316f231e404201d288ef94 |
|
13-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
revert my previous switch lowering change, which miscompiles a few programs. This will break a dj test until I have time to investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cf8270a9941e697243bb9c91d5d8b2e1fc01a35c |
|
13-Feb-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Add a space between // and the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7aa47b69ca5f4feb6b106a50959e37822bd25b4f |
|
13-Feb-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Add "original alignment" to function arguments flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
818d42f1e81db75300223fedb75227c17ec0ef83 |
|
13-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix switch lowering to order cases in zext order, which is how we emit the comparisons. This fixes an infinite loop on CodeGen/Generic/switch-lower.ll and PR1197 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b1919e2f08ecb37140af676fd2916f8d5ed7df3d |
|
10-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Privatize StructLayout::MemberOffsets, adding an accessor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ad2070c667ebabf1650be63e6b3e0b411da86918 |
|
10-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add function live-ins to entry block live-in set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
15699fc5ed0378205f9705d35d019d9ff0cf200d |
|
10-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename some variables to avoid confusion with SelectionDAGISel::BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9f24ad79ce32200b06499ef638b502fc1c36ed04 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch VAlueMap from std::map to DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0da331fe0bff24e6c90c706ef8f1f1c3a8d90c2a |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch NodeMap from std::map to DenseMap, this speeds up isel by 2.3% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
832254e1c2387c0cbeb0a820b8315fbe85cb003a |
|
02-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Changes to support making the shift instructions be true BinaryOperators. This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fea997aac5773e936754de5436029c2a4fa1e930 |
|
01-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fit in 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
527fae12c3b58d6151aa1c534c10b55d603b8da1 |
|
01-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Emit a better assertion message for PR1133 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5cbf985dcbc89fba3208e7baf8b6f488b06d3ec9 |
|
30-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid confusion with external linkage types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
367f109ba954239a348c624a3331422bfdb31d03 |
|
30-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
add initial support for handling inline asms with multiple constraints. This doesn't do the "right thing" but will probably work in most cases. This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bcc5f36765e8111c13873a0c0dc874c92385d808 |
|
29-Jan-2007 |
Nate Begeman <natebegeman@mac.com> |
Finish off bug 680, allowing targets to custom lower frame and return address nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6aa279dc8b5a05499b2cd158f8187d7225adc4f4 |
|
28-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Arguments are counting from 1. not from 0. Maybe we should change numbering somehow? E.g. make return argument the last? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac2b2cf88c9331bf44e802f6d31805c40a56af0f |
|
28-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
More cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b10308e440c80dd6ffb4b478f741ff7e5f30cb48 |
|
28-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Propagate changes from my local tree. This patch includes: 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
44c3b9fdd416c79f4b67cde1aecfced5921efd81 |
|
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Change the MachineDebugInfo to MachineModuleInfo to better reflect usage for debugging and exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1ee29257428960fede862fcfdbe80d5d007927e9 |
|
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Make LABEL a builtin opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
24d6da5fedcf39891f7d8c5b031c01324b3db545 |
|
21-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR970: Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
58092e35a3368e130438cbc793c8f9dce2e4fe0f |
|
20-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Teach TargetData to handle 'preferred' alignment for each target, and use these alignment amounts to align scalars when we can. Patch by Scott Michel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6b6b6ef1677fa71b1072c2911b4c1f9524a558c9 |
|
11-Jan-2007 |
Zhou Sheng <zhousheng00@gmail.com> |
For PR1043: Merge ConstantIntegral and ConstantBool into ConstantInt. Remove ConstantIntegral and ConstantBool from LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4810b52d024ec4dcf638c906db9589338c05117 |
|
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
remove support for llvm.isunordered git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0d630d220414b02fed6873555bb46795a682174b |
|
05-Jan-2007 |
Evan Cheng <evan.cheng@apple.com> |
GEP subscript is interpreted as a signed value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f8e7a219121b7d6f8bcf1e22828648a243384fbb |
|
04-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
fix PowerPC/2007-01-04-ArgExtension.ll, a bug handling K&R prototypes with the recent signless changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bcca3405bd6698af82eeed20e24744d0625aa1b3 |
|
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Legalizer doesn't do an ANY_EXTEND if we don't ask for one so make sure that we default to an ANY_EXTEND if no parameter attribute is set on the result value of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
376dd212f9142cd0f0b03e0b6296b2df7208bb9a |
|
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Restore previous behavior of defaulting to ZEXT. This works around two things: (1) preventing PR1071 and (2) working around missing parameter attributes for bool type. (2) will be fixed shortly. When PR1071 is fixed, this patch should be undone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8c57dfb1aea24132bd5b58c4ed4893ea967ba131 |
|
03-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Two changes: 1. Switch expression and cases are compared signed and are sign extended. 2. For function results needing extended, do SIGN_EXTEND if the SExtAttribute is set and ZERO_EXTEND if the ZExtAttribute is set, otherwise just let the Legalizer do ANY_EXTEND. This fixes the recent regression in kimwitu++ and probably the llvm-gcc bootstrap issue we had today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
47857812e29324a9d1560796a05b53d3a9217fd9 |
|
31-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Three changes: 1. Convert signed integer types to signless versions. 2. Implement the @sext and @zext parameter attributes. Previously the type of an function parameter was used to determine whether it should be sign extended or zero extended before the call. This information is now communicated via the function type's parameter attributes. 3. The interface to LowerCallTo had to be changed in order to accommodate the parameter attribute information. Although it would have been convenient to pass in the FunctionType itself, there isn't always one present in the caller. Consequently, a signedness indication for the result type and for each parameter was provided for in the interface to this method. All implementations were changed to make the adjustment necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e4d87aa2de6e52952dca73716386db09aad5a8fd |
|
23-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0b4f80ee898c1e85242482e4cb363e6bfe0a133b |
|
20-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
getLoad() and getStore() calls missed SVOffset operand. Thanks to Dan Gohman for pointing it out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
36d439666c9f9f781d57dc2fd6d3cc80602fe095 |
|
16-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Fix PR1049 and CodeGen/Generic/2006-12-16-InlineAsmCrash.ll by producing target constants instead of constants. Constants can get selected to li/movri instructions, which causes the scheduler to explode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9f87788040786b1bc6530763e4cf7e105bfb2924 |
|
13-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
More soft-fp work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7b06bd532d3324a2f76bbc856ae20ff89d8e0e92 |
|
13-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Replace CastInst::createInferredCast calls with more accurate cast creation calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0ca67332fa4eaed35e8e85b2c935500798ea6c2a |
|
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand i32/i64 CopyToReg f32/f64 to BIT_CONVERT + CopyToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b15974a65ce3c5d5cdde8d5e524055d3f1d59a77 |
|
12-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand formal arguments and call arguments recursively: e.g. f64 -> i64 -> 2 x i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d27a258d2d7691db3731135a448b7654d260cc07 |
|
11-Dec-2006 |
Anton Korobeynikov <asl@math.spbu.ru> |
Cleaned setjmp/longjmp lowering interfaces. Now we're producing right code (both asm & cbe) for Mingw32 target. Removed autoconf checks for underscored versions of setjmp/longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1a8f1fe676f1d83e0da7336e744ebcdcc14a88c4 |
|
09-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Preliminary soft float support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
832171cb9724d2d31c8dfb73172e2be8f6dd13ee |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removing even more <iostream> includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f3e486e069011c70abb771958dc1218912b98eea |
|
29-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1023 by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a5a57d66f5717873dbf3c48b174c0b0ce54b6612 |
|
29-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1022 (folding loads of static initializers) by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3f7927c84c1b8c449378eaaf67eb9c563eb78949 |
|
29-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
add a hook to allow targets to hack on inline asms to lower them to llvm when they want to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c0f64ffab93d11fb27a3b8a0707b77400918a20e |
|
28-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead of opcode and number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3da59db637a887474c1b1346c1f3ccf53b6c4663 |
|
27-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
45fb3f3cb2b8efc01d9bbe42a64194f35b92c759 |
|
20-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: First in a series of patches to convert SetCondInst into ICmpInst and FCmpInst using only two opcodes and having the instructions contain their predicate value. Nothing uses these classes yet. More patches to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
43193d60e9c512fbb7ac8e682b4c807ba3e8408e |
|
15-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
remove dead #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1e7aa5c209109d07af30c8a2e9bfd82cf3824246 |
|
10-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
commentate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3822ff5c71478c7c90a50ca57045fb676fcb5005 |
|
08-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch converts the old SHR instruction into two instructions, AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not dependent on the sign of their operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3ed469ccd7b028a030b550d84b7336d146f5d8fa |
|
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0a783f783ca05c961234385f5b269d4cf03dbbdb |
|
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Replace the REM instruction with UREM, SREM and FREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2a821601f1db665fbb825727aacf1a54d17b91ef |
|
02-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Allow the getRegForInlineAsmConstraint method to return a register class with no fixes physreg. Treat this as permission to use any register in the register class. When this happens and it is safe, allow the llvm register allcoator to allocate the register instead of doing it at isel time. This eliminates a ton of copies around common inline asms. For example: int test2(int Y, int X) { asm("foo %0, %1" : "=r"(X): "r"(X)); return X; } now compiles to: _test2: foo r3, r4 blr instead of: _test2: mr r2, r4 foo r2, r2 mr r3, r2 blr GCC produces: _test2: foo r4, r4 mr r3,r4 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0ccb500fa7a28baeb66754ff4a6950fa0e82617d |
|
01-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
Compile CodeGen/PowerPC/fp-branch.ll to: _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 blt cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr instead of: _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bge cr0, LBB1_1 ;bb72.exitStub LBB1_4: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bnu cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
df19f27d039fd791c73e39f4134319debc75db4f |
|
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
look through isunordered to inline it into branch blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
53069fbbae2558a3138df24776448791fea3acee |
|
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
TargetLowering::isOperandValidForConstraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d03f1581c8a854fdbe4f5a738e9322341c2bc77f |
|
31-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Turn an assert into an error message. This is commonly triggered when we don't support a specific constraint yet. When this happens, print the unsupported constraint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3d4ce1108520a4dcf31cb01523e145d286ee64c1 |
|
30-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Lower jumptable to BR_JT. The legalizer can lower it to a BRIND or let the target custom lower it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6a586c8d9a7ba032adf0619d06473310c41cae14 |
|
29-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
fix Generic/2006-10-29-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5a145f0094d7e15ca3c0326b1af2ea0ad19f9726 |
|
29-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a load folding issue that Evan noticed: there is no need to export values used by comparisons in the main block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bad7f48c7070444eeb767c169f8bbed86b2c1ae1 |
|
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
split critical edges more carefully and intelligently. In particular, critical edges whose destinations are not phi nodes don't bother us. Also, share split edges, since the split edge can't have a phi. This significantly reduces the complexity of generated code in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
47e32e6b831dad8289fd498c71c5f641172b1c09 |
|
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Split *all* critical edges before isel. This resolves issues with spill code being inserted on unsplit critical edges, which introduces (sometimes large amounts of) partially dead spill code. This also fixes PR925 + CodeGen/Generic/switch-crit-edge-constant.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8c494ab759266322aa05d5e99af9c05eb0d44576 |
|
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in merged condition handling (CodeGen/Generic/2006-10-27-CondFolding.ll). Add many fewer CFG edges and PHI node entries. If there is a switch which has the same block as multiple destinations, only add that block once as a successor/phi node (in the jumptable case) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1c9b2f312d63902303507ee35dbd7631447773be |
|
27-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
remove debug code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d2f9ee9ea7b08c23a8742b6a53dd78a20233adc0 |
|
27-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen cond&cond with two branches. This compiles (f.e.) PowerPC/and-branch.ll to: cmpwi cr0, r4, 4 bgt cr0, LBB1_2 ;UnifiedReturnBlock LBB1_3: ;entry cmplwi cr0, r3, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock instead of: cmpwi cr7, r4, 4 mfcr r2 addic r4, r3, -1 subfe r3, r4, r3 rlwinm r2, r2, 30, 31, 31 or r2, r2, r3 cmplwi cr0, r2, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock LBB1_1: ;cond_true git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
571e434a34e26f295f13db2dd07551de7e25f8a9 |
|
27-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Turn conditions like x<Y|z==q into multiple blocks. This compiles Regression/CodeGen/X86/or-branch.ll into: _foo: subl $12, %esp call L_bar$stub movl 20(%esp), %eax movl 16(%esp), %ecx cmpl $5, %eax jl LBB1_1 #cond_true LBB1_3: #entry testl %ecx, %ecx jne LBB1_2 #UnifiedReturnBlock LBB1_1: #cond_true call L_bar$stub addl $12, %esp ret LBB1_2: #UnifiedReturnBlock addl $12, %esp ret instead of: _foo: subl $12, %esp call L_bar$stub movl 20(%esp), %eax movl 16(%esp), %ecx cmpl $4, %eax setg %al testl %ecx, %ecx setne %cl testb %cl, %al jne LBB1_2 #UnifiedReturnBlock LBB1_1: #cond_true call L_bar$stub addl $12, %esp ret LBB1_2: #UnifiedReturnBlock addl $12, %esp ret And on ppc to: cmpwi cr0, r29, 5 blt cr0, LBB1_1 ;cond_true LBB1_3: ;entry cmplwi cr0, r30, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock instead of: cmpwi cr7, r4, 4 mfcr r2 addic r4, r3, -1 subfe r30, r4, r3 rlwinm r29, r2, 30, 31, 31 and r2, r29, r30 cmplwi cr0, r2, 0 bne cr0, LBB1_2 ;UnifiedReturnBlock git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1628cec4d7fce310d9cde0bcc73997e5a71692c4 |
|
26-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Make necessary changes to support DIV -> [SUF]Div. This changes llvm to have three division instructions: signed, unsigned, floating point. The bytecode and assembler are bacwards compatible, however. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2452595927a19a84ab20f012f1e2414a18f65ffb |
|
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
visitSwitchCase knows how to insert conditional branches well. Change visitBr to just call visitSwitchCase, eliminating duplicate logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
57ab65972e09be54da6461e483664ebf34afa1ee |
|
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Generalize CaseBlock a bit more: Rename LHSBB/RHSBB to TrueBB/FalseBB. Allow the RHS value to be null, in which case the LHS is treated as a bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7b248d986670c214674c45d362950ec105668255 |
|
24-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
generalize 'CaseBlock'. It really allows any comparison to be inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b354343af79ce7b64e3b32696f37ad0ce29f3ffd |
|
23-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Minor tweak. Instead of generating: movl 32(%esp), %eax cmpl $1, %eax je LBB1_1 #bb LBB1_4: #entry cmpl $2, %eax je LBB1_2 #bb2 jmp LBB1_3 #UnifiedReturnBlock LBB1_1: #bb notice that we would miss the fall through and emit this instead: movl 32(%esp), %eax cmpl $2, %eax je LBB1_2 #bb2 LBB1_4: #entry cmpl $1, %eax jne LBB1_3 #UnifiedReturnBlock LBB1_1: #bb git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b2e806eecd85c98367f038817e742ef183dd9f87 |
|
23-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix phi node updating for switches lowered to linear sequences of branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e236ac64a2b149ccf4216159430de512ec58a504 |
|
23-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
disable this code for now, it's not yet safely updating phi nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d2c1d2200b4d1012c61c4bcddfbc6fefcf3a05e1 |
|
22-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Implement PR964 and Regression/CodeGen/Generic/SwitchLowering.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b83eb6447ba155342598f0fabe1f08f5baa9164a |
|
20-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c70ddad2b7d7abffeaaace913939fb3c5c55a38b |
|
19-Oct-2006 |
Bill Wendling <isanbard@gmail.com> |
Partially in response to PR926: insert the newly created machine basic blocks into the basic block list when lowering the switch inst. into a binary tree of if-then statements. This allows the "visitSwitchCase" func to allow for fall-through behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c7c3f110eda0ff8040e4bd99e38d3112b910810f |
|
16-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Pass AliasAnalysis thru to DAGCombiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8b2794aeff151be8cdbd44786c1d0f94f8f2e427 |
|
13-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
82c3d8f81ab20dc7571f29ffc46a5bb1b7ed8323 |
|
11-Oct-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Jimptables working again on alpha. As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
755480681c795d585c73556c028b6143c46bda86 |
|
11-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
add two helper methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
466685d41a9ea4905b9486fea38e83802e46f196 |
|
09-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e0cfc8b2f24394c7b5d9275235678269aa4425fd |
|
07-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
jump tables handle pic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
786225adf09e606c795ef68a1f789c12f37869f2 |
|
06-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make use of getStore(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
693163e74d047a05799eaaf619ba4972fdc3a0e9 |
|
05-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix some typos that can cause a flag value to have more than one use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
57f9a43c64e8c5c8b2566fb6649754c11b59b98a |
|
28-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
refactor critical edge breaking out into the SplitCritEdgesForPHIConstants method. This is a baby step towards fixing PR925. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
16113431e84bb8adba21fc73bb5715a1297000ae |
|
26-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Comments on JumpTableness git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
beec30eaf301bd6882cd06800b5175b94f033f9d |
|
24-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Add support for other relocation bases to jump tables, as well as custom asm directives git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2ae5b87996dca039d0721f1c463835f726979030 |
|
24-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
PIC jump table entries are always 32-bit. This fixes PIC jump table support on X86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3fbd67898e365f12436564a52d8995a4aeb4ef89 |
|
18-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
absolute addresses must match pointer size git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c970f062e0a66d97a06eca213486a16fae1b37a4 |
|
13-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
If LSR went through a lot of trouble to put constants (e.g. the addr of a global in a specific BB, don't undo this!). This allows us to compile CodeGen/X86/loop-hoist.ll into: _foo: xorl %eax, %eax *** movl L_Arr$non_lazy_ptr, %ecx movl 4(%esp), %edx LBB1_1: #cond_true movl %eax, (%ecx,%eax,4) incl %eax cmpl %edx, %eax jne LBB1_1 #cond_true LBB1_2: #return ret instead of: _foo: xorl %eax, %eax movl 4(%esp), %ecx LBB1_1: #cond_true *** movl L_Arr$non_lazy_ptr, %edx movl %eax, (%edx,%eax,4) incl %eax cmpl %ecx, %eax jne LBB1_1 #cond_true LBB1_2: #return ret This was noticed in 464.h264ref. This doesn't usually affect PPC, but strikes X86 all the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c66764c00756d800aede2fd32d55658a236b1912 |
|
10-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
This code was trying too hard. By eliminating redundant edges in the CFG due to switch cases going to the same place, it make #pred != #phi entries, breaking live interval analysis. This fixes 458.sjeng on x86 with llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6ddf8ed6fe2d0aa5e15f7b9ad7e5049e2223bbd1 |
|
09-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the fpowi now by lowering to a libcall git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d5e93c07957844e3086fb12d686b93dbbd2524c2 |
|
07-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2006-09-06-SwitchLowering.ll, a bug where SDIsel inserted too many phi operands when lowering a switch to branches in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
09e460662a8d7328da1b938d5581a6ef3740b51d |
|
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Completely eliminate def&use operands. Now a register operand is EITHER a def operand or a use operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a4f0b3a084d120cfc5b5bb06f64b222f5cb72740 |
|
27-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
be384162c68641233deba8702666af51bdfd4b83 |
|
17-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f9f37fc52c444e34bad7846729ae5481a65e0a53 |
|
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate use of getNode that takes vector of valuetypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bd564bfc63163e31f320c3da9749db70992dc35e |
|
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Start eliminating temporary vectors used to create DAG nodes. Instead, pass in the start of an array and a count of operands where applicable. In many cases, the number of operands is known, so this static array can be allocated on the stack, avoiding the heap. In many other cases, a SmallVector can be used, which has the same benefit in the common cases. I updated a lot of code calling getNode that takes a vector, but ran out of time. The rest of the code should be updated, and these methods should be removed. We should also do the same thing to eliminate the methods that take a vector of MVT::ValueTypes. It would be extra nice to convert the dagiselemitter to avoid creating vectors for operands when calling getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3700f90c19f51deae00f85b80d31e1f7fbda1f99 |
|
03-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Work around a GCC 3.3.5 bug noticed by a user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
eb577ba3b815a1fa4627b060dd2345d17abf672d |
|
02-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Final polish on machine pass registries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9373beba6010dd34316a801c3a9b37ab9e048031 |
|
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Now that the ISel is available, it's possible to create a default instruction scheduler creator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9ff542f2cce5bf7bf3cf9f692cf3ec0690ad2b3b |
|
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Change use of "Cache" to "Default". 2. Added argument to instruction scheduler creators so the creators can do special things. 3. Repaired target hazard code. 4. Misc. More to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
13ec702c430b91ee49b9e6d9581cd95412f216c8 |
|
01-Aug-2006 |
Jim Laskey <jlaskey@mac.com> |
Introducing plugable register allocators and instruction schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8825a485e2e99216adc0c469a7c43895cd4eae40 |
|
01-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
PIC jump table entries are always 32-bit even in 64-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4d9bbdc4408cc871d229677313cc4887862719d7 |
|
27-Jul-2006 |
Nate Begeman <natebegeman@mac.com> |
Code cleanups, per review git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2f1ae88445c696a9b9d61e14747ba721190cdc99 |
|
27-Jul-2006 |
Nate Begeman <natebegeman@mac.com> |
Support jump tables when in PIC relocation model git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a15cf7045efc688b813f4bc7cbc9f17c27114c04 |
|
20-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Mems can be in the output list also. This is the second half of a fix for PR833 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9525528a7dc5462b6374d38c81ba5c07b11741fe |
|
29-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Use hidden visibility to make symbols in an anonymous namespace get dropped. This shrinks libllvmgcc.dylib another 67K git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a844126c43976387a66dafbe5137a762169f1f34 |
|
15-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Consistency. EXTRACT_ELEMENT index operand should have ptr type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a3bb86dd6b6220c69d9d7e4e11aea42fa1ec2bc5 |
|
12-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Make sure to update the CFG correctly if a switch only has a default dest. This fixes CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0c48fd4610cc7a90a998428c93a0c68246e79e57 |
|
08-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix X86/inline-asm.ll:test2, a case where an input value was implicitly truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cf752aa502a2ce6eaca9db4640171143c49e1733 |
|
08-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/CodeGen/X86/inline-asm.ll, a case where inline asm causes implement extension of a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d61c4820c9e39500a67bec4d6cfe521a833afdcc |
|
27-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Make CALL node consistent with RET node. Signness of value has type MVT::i32 instead of MVT::i1. Either is fine except MVT::i32 is probably a legal type for most (if not all) platforms while MVT::i1 is not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8e7d056bc5c0688501f6721994c8f4074d699c69 |
|
27-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change RET node to include signness information of the return values. e.g. RET chain, value1, sign1, value2, sign2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f6d62c2e2a53e3ebf2e25f0891e5f1a0b772b368 |
|
25-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
CALL node change: now including signness of every argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
80235d508e5f7a9603ef43ba6625984173ff0323 |
|
23-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
-enable-unsafe-fp-math implies -enable-finite-only-fp-math git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
124729155d860a0850eb4ef2a7cea4145e13a057 |
|
23-May-2006 |
Vladimir Prus <ghost@cs.msu.su> |
Fix missing include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f6f9581983c85f8b4d2775b22870c1a4516fabdf |
|
23-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Incorrect SETCC CondCode used for FP comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d202ca4d988b5ee3f30656a7e82443db4752dd91 |
|
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix the result of the call to use a correct vbitconvert. There is no need to use getPackedTypeBreakdown at all here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1b8daae71b0118b489cbecf2f1b8ed86b6bc8e57 |
|
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Correct a previous patch which broke CodeGen/PowerPC/vec_call.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6c43f35d740ccd1d746be90d98ee11f8829fe543 |
|
17-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a LowerCallTo and LowerArguments bug. They were introducing illegal VBIT_VECTOR nodes. There were some confusion about the semantics of getPackedTypeBreakdown(). e.g. for <4 x f32> it returns 1 and v4f32, not 4, and f32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
da098e7d1017e9435617d4c3de58ff72ae01ca22 |
|
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for calls that pass and return legal vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f4ec817299a4187044a6162c2f520772b3ad69a0 |
|
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallTo produce it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8c0c10c2b9fef21dcbabac81fffa32f4407a0b7f |
|
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add a chain to FORMAL_ARGUMENTS. This is a minimal port of the X86 backend, it doesn't currently use/maintain the chain properly. Also, make the X86ISelLowering.cpp file 80-col clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
966454129dc62260df1f438f0243f6877dcd185c |
|
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Move function-live-in-handling code from the sdisel code to the scheduler. This code should be emitted after legalize, so it can't be in sdisel. Note that the EmitFunctionEntryCode hook should be updated to operate on the DAG. The X86 backend is the only one currently using this hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ee00a1d12c631eb7360ddd4809bdde72331b2736 |
|
13-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Revert an un-intended change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b5d9319bc585d872b59967eec71ada21a3bbd497 |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead vars git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e165a78551a91d8420cd8f074d97701e8788f8b5 |
|
12-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Refactor scheduler code. Move register-reduction list scheduler to a separate file. Added an initial implementation of top-down register pressure reduction list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
17c275ff2ce9e94d647e781f6dac6320d088f899 |
|
08-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Make emission of jump tables a bit less conservative; they are now required to be only 31.25% dense, rather than 75% dense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f0df8824eb2bf8a5fb91ce6fd1db590caf34f994 |
|
06-May-2006 |
Chris Lattner <sabre@nondot.org> |
When inserting casts, be careful of where we put them. We cannot insert a cast immediately before a PHI node. This fixes Regression/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
903236468c3ebb3f9ae8f51b6f2e68f10c7e1d3a |
|
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
More aggressively sink GEP offsets into loops. For example, before we generated: movl 8(%esp), %eax movl %eax, %edx addl $4316, %edx cmpb $1, %cl ja LBB1_2 #cond_false LBB1_1: #cond_true movl L_QuantizationTables720$non_lazy_ptr, %ecx movl %ecx, (%edx) movl L_QNOtoQuantTableShift720$non_lazy_ptr, %edx movl %edx, 4460(%eax) ret ... Now we generate: movl 8(%esp), %eax cmpb $1, %cl ja LBB1_2 #cond_false LBB1_1: #cond_true movl L_QuantizationTables720$non_lazy_ptr, %ecx movl %ecx, 4316(%eax) movl L_QNOtoQuantTableShift720$non_lazy_ptr, %ecx movl %ecx, 4460(%eax) ret ... which uses one fewer register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7e598096ea8db3f19f4ec8f4cb407aea996bd7c2 |
|
05-May-2006 |
Chris Lattner <sabre@nondot.org> |
Sink noop copies into the basic block that uses them. This reduces the number of cross-block live ranges, and allows the bb-at-a-time selector to always coallesce these away, at isel time. This reduces the load on the coallescer and register allocator. For example on a codec on X86, we went from: 1643 asm-printer - Number of machine instrs printed 419 liveintervals - Number of loads/stores folded into instructions 1144 liveintervals - Number of identity moves eliminated after coalescing 1022 liveintervals - Number of interval joins performed 282 liveintervals - Number of intervals after coalescing 1304 liveintervals - Number of original intervals 86 regalloc - Number of times we had to backtrack 1.90232 regalloc - Ratio of intervals processed over total intervals 40 spiller - Number of values reused 182 spiller - Number of loads added 121 spiller - Number of stores added 132 spiller - Number of register spills 6 twoaddressinstruction - Number of instructions commuted to coalesce 360 twoaddressinstruction - Number of two-address instructions to: 1636 asm-printer - Number of machine instrs printed 403 liveintervals - Number of loads/stores folded into instructions 1155 liveintervals - Number of identity moves eliminated after coalescing 1033 liveintervals - Number of interval joins performed 279 liveintervals - Number of intervals after coalescing 1312 liveintervals - Number of original intervals 76 regalloc - Number of times we had to backtrack 1.88998 regalloc - Ratio of intervals processed over total intervals 1 spiller - Number of copies elided 41 spiller - Number of values reused 191 spiller - Number of loads added 114 spiller - Number of stores added 128 spiller - Number of register spills 4 twoaddressinstruction - Number of instructions commuted to coalesce 356 twoaddressinstruction - Number of two-address instructions On this testcase, this change provides a modest reduction in spill code, regalloc iterations, and total instructions emitted. It increases the number of register coallesces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f4360a478944af45d5f851a0903fbbfa44f520dc |
|
03-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Finish up the initial jump table implementation by allowing jump tables to not be 100% dense. Increase the minimum threshold for the number of cases in a switch statement from 4 to 6 in order to create a jump table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a69571c7991813c93cba64e88eced6899ce93d81 |
|
03-May-2006 |
Owen Anderson <resistor@mac.com> |
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
55d0fa1bfaec665c949b1069225bbc23ca7782bc |
|
28-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove the temporary option: -no-isel-fold-inflight git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
020c41f21e8b6b01bc40db69e660c3c6e29b0978 |
|
28-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
TargetLowering::LowerArguments should return a VBIT_CONVERT of FORMAL_ARGUMENTS SDOperand in the return result vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
552c4a849422ad91fa9988255ae35aebbf3acf7b |
|
28-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added a temporary option -no-isel-fold-inflight to control whether a "inflight" node can be folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f7179bb56ea49e627cdc531ea73d7b6940e87372 |
|
27-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Insert a VBIT_CONVERT between a FORMAL_ARGUMENT node and its vector uses (VAND, VADD, etc.). Legalizer will assert otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3b0d286d0085fbf8314d9f5510c2f78558ab5dea |
|
26-Apr-2006 |
Evan Cheng <evan.cheng@apple.com> |
Don't forget return void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9453eea49bca1c3904047db495855c93e001d1cd |
|
23-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
Fix the updating of the machine CFG when a PHI node was in a successor of the jump table's range check block. This re-enables 100% dense jump tables by default on PPC & x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
05f9466cf0f4f47803af7283f7708cb25f4da889 |
|
23-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
Turn of jump tables for a bit, there are still some issues to work out with updating the machine CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
37efe6764568a3829fee26aba532283131d1a104 |
|
22-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4a1cd9c61e3e648587d33d5f02ddad97e87f16aa |
|
21-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap miscompares). Switch RISC targets to use the list-td scheduler, which isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fdfded55888e35b76bb70231a5bb2f60877c2f6a |
|
12-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b22e35a3c3bec07f5559c1476b3143e0d6d64269 |
|
09-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add code generator support for VSELECT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3e104b11168da4692b69cc6b236c1da22adff959 |
|
08-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen shufflevector as VVECTOR_SHUFFLE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
67f13514984c71f80cedf32b698e585a68bcf3e0 |
|
08-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Stub out shufflevector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2e2ef9535070bb352601482cceac1140c1158cdd |
|
05-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Make a vector live across blocks have the correct Vec type. This fixes CodeGen/X86/2006-04-04-CrossBlockCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e58a780166eb684164a0a95b999f29328d4e9b2b |
|
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Intrinsics that just load from memory can be treated like loads: they don't have to serialize against each other. This allows us to schedule lvx's across each other, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5e46a19ec848cd4fc9649bd5170c43d9e657668c |
|
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new -view-legalize-dags command line option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f8814cf8b8ba8953add60078e304fd5a4113f9cc |
|
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Prefer larger register classes over smaller ones when a register occurs in multiple register classes. This fixes PowerPC/2006-04-01-FloatDoubleExtend.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7e02151ce2686687446ba7293e66d6b096106e68 |
|
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Make sure to pass enough values to phi nodes when we are dealing with decimated vectors. This fixes UnitTests/Vector/sumarray-dbl.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
70c2a61e0a0fb0a7e8b9bddd26bdcc92762772f0 |
|
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Significantly improve handling of vectors that are live across basic blocks, handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2bbd81064a6998496a71ff7ae8160b3caada64fa |
|
29-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Bug fixes: handle constantexpr insert/extract element operations Handle constantpacked vectors with constantexpr elements. This fixes CodeGen/Generic/vector-constantexpr.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bf7637d59028a5d9911769810f537c499e23bb8e |
|
28-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
More bulletproofing of llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
48b61a729df6576c8833a83893d4086bddff69a5 |
|
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum value. Split them into separate enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8c39020359e1b80277277382c63560f592619a2f |
|
28-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Reactivate llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
67995340fb223d91636c95ba35488c34d47b726a |
|
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Disable dbg_declare, it currently breaks the CFE build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f15485a8d0dff5f720b7ad27346129ac5c3ec503 |
|
27-Mar-2006 |
Nate Begeman <natebegeman@mac.com> |
SelectionDAGISel can now natively handle Switch instructions, in the same manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary search tree of basic blocks. The new approach has several advantages: it is faster, it generates significantly smaller code in many cases, and it paves the way for implementing dense switch tables as a jump table by handling switches directly in the instruction selector. This functionality is currently only enabled on x86, but should be safe for every target. In anticipation of making it the default, the cfg is now properly updated in the x86, ppc, and sparc select lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fbcf23c3c12449c264f1448a2eee524be0b799f7 |
|
27-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Bullet proof against undefined args produced by upgrading ols-style debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7255a545613f9e713779ca81f55711c0863d9cc9 |
|
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fix inverted conditional git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0892cee81fa8c1ea6a0901b268fe9ad2b8fa733a |
|
24-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Rename for truth in advertising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0eade319cdb72e24c11d068728a98083737c6435 |
|
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Lower target intrinsics into an INTRINSIC node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
43970fec322d9e0153ca513de41d80af1c79bdde |
|
23-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle new forms of llvm.dbg intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7e358908b885f50fb9258b7d10509bad20ca4c3b |
|
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e25ca692c0478af5e15170fce23cea2a5b5fd0b9 |
|
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement simple support for vector casting. This can currently only handle casts between legal vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
384504cea6c392125a2318d8bbb7f25aa0bbff7e |
|
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add some trivial support for extractelement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1c6191ffe764f3294cc2dda2bb3703403a416414 |
|
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add a hacky workaround for crashes due to vectors live across blocks. Note that this code won't work for vectors that aren't legal on the target. Improvements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2332b9f16fe17d1886566729b2241b8cd90f9916 |
|
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
implement basic support for INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b2827b0901162169bb2692b77a839c9767849134 |
|
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. Allow*BUILD_VECTOR to take variable inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
23d564c11fbe628dbebd6d8f09d7d07fa862b719 |
|
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
implement vector.ll:test_undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c7029805ef35ce9805931067b841e6af11db382e |
|
18-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Change the structure of lowering vector stuff. Note: This breaks some things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
81e8097377529dc3b666f33bb525c49cfbac3f51 |
|
17-Mar-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove BRTWOWAY* Make the PPC backend not dependent on BRTWOWAY_CC and make the branch selector smarter about the code it generates, fixing a case in the readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6cb7004c3499f07c034a01f6335b5058aa80a5ce |
|
17-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a problem fully scalarizing values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
199862b74973198c2ab5a139f664c86713e7b579 |
|
16-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for CopyFromReg from vector values. Note: this doesn't support illegal vector types yet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3c38449be6371d53a58d0df80ecf3772a2f9a79f |
|
16-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Teach CreateRegForValue how to handle vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
28b5b1c7b54c2065882b98af2406c38a3bcee802 |
|
15-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add support for vector->vector casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f4321a3a438833dade457e24da6e1e6907cabcd5 |
|
13-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Handle the removal of the debug chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0937103368992af8d3d8032d31a7d152aeae32d5 |
|
11-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added a parameter to control whether Constant::getStringValue() would chop off the result string at the first null terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7d74d1145fd17cdc11113755cee2a21f3cb0b7cf |
|
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
scrape out bits of llvm-db git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
20a4921791eafc0cce00fb01dcacfcfc15a0d0fc |
|
10-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify the interface to the schedulers, to not pass the selected heuristicin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
59bcce5ae52afff2ba4840bfa630b20e8ff4ddb2 |
|
09-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove dbg_declare, it's not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
21b6c9d6477c8df3f884c3f1ebeaaa44dd53aafe |
|
08-Mar-2006 |
Jim Laskey <jlaskey@mac.com> |
Get rid of the multiple copies of getStringValue. Now a Constant:: method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b0d21ef20c29f4ea46d21b488f17feaa6a8760e1 |
|
08-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Change the interface for getting a target HazardRecognizer to be more clean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
03fc53c174e654adae4e42a0c352c7937de2cd87 |
|
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where targets can implement them. Make the top-down scheduler non-g5-specific. Remove the old testing hazard recognizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a5de484bc7c8f896b5903999797c4d57f4e45185 |
|
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Split the list scheduler into top-down and bottom-up pieces. The priority function of the top-down scheduler are completely bogus currently, and having (future) PPC specific in this file is also wrong, but this is a small incremental step. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a09f848c11c9db3c2614e0275a3256310ac26653 |
|
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen copysign[f] into a FCOPYSIGN node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3e1ce5a44d3d59b2b9ca68a21261f0f487d69269 |
|
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
41edaa0529997e41a2bd64efd5f3e8027c67d99f |
|
03-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove the read/write port/io intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
03dd4652158f8a4c1db65f066195342d4a3695a7 |
|
03-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving PR709, and paving the way for future progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
860771d2d86243b65ec16fac6cc57b285078f138 |
|
01-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Vector ops lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
22873462c965a57664c4e375aa6e8bf02c9c6ad8 |
|
28-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add support for output memory constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7e88103cdea8c36b2229dae8c60def14e3816512 |
|
24-Feb-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Get VC++ building again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0e43f2ba114df7bfc1f70d0ef62b663f6ea4c09d |
|
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement (most of) selection of inline asm memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
87bc3bd1213ced06eade93e3267178198d41a381 |
|
24-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Lower C_Memory operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9f6637db10642fae51fa3628b7833c6999f7fdb3 |
|
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an endianness problem on big-endian targets with expanded operands to inline asms. Mark some methods const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c3a9f8d31ce93ba384bd2bbdd55c757b06600a15 |
|
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Record all of the expanded registers in the DAG and machine instr, fixing several bugs in inline asm expanded operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9b6fb5de49f30d03b3e3f2fcb99e777b3149b783 |
|
23-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
This fixes a couple of problems with expansion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
864635ad7b3046d3042311423071152c613961de |
|
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Change a whole bunch of code to be built around RegsForValue instead of a single register number. This fully implements promotion for inline asms, expand is close but not quite right yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1efa40f6a4b561cf8f80fe018684236010645cd0 |
|
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
split register class handling from explicit physreg handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0f0b7d4927e56e622cf43da0db56f3e0d40b8aaf |
|
22-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in getRegForInlineAsmConstraint prototype git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cffbb5174f283d123d6bfc582292f4a9c84cb3ed |
|
17-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Dumb bug. Code sees a memcpy from X+c so it increments src offset. But it turns out not to point to a constant string but it forgot change the offset back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
298ebf2bd80ca415e58bbcbd9866ee58f167b620 |
|
16-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
If the false case is the current basic block, then this is a self loop. We do not want to emit "Loop: ... brcond Out; br Loop", as it adds an extra instruction in the loop. Instead, invert the condition and emit "Loop: ... br!cond Loop; br Out. Generalize the fix by moving it from PPCDAGToDAGISel to SelectionDAGLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a47876d87a84fa94bf9f09cfef6756223575611d |
|
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove an unused function parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
74d0aa9a4b1f5e021d2ce851a7af344e9b4ebb23 |
|
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Turn a memcpy from string constant into a series of stores of constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c080d6fb3dc7769c5a1e00c6a77cb415453b0b89 |
|
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Lower memcpy with small constant size operand into a series of load / store ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dea7245997f37972ed2f94d4ca1ec50c5af5000a |
|
15-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Doh again! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c4f8eee05447a1d7ead3deabbeb087e3e037f3f8 |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Keep to < 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac940ab1bf21be40f74a83b202419a20ad2e279f |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Missed a break so memcpy cases fell through to memset. Doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
80e89d7d6c02233a92d26bd4625e4188d48cbfa1 |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a build breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a03a5dc7ce876dac4b3b91bae14216de4233bacd |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename maxStoresPerMemSet to maxStoresPerMemset, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1db92f947cc600dee5edb9305a4e0f1c5c872965 |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Expand memset dst, c, size to a series of stores if size falls below the target specific theshold, e.g. 16 for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
06a248c9b398049d41cf6dd1a3f9eecc75603401 |
|
14-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
now that libcalls don't suck, we can remove this hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d96185aa62dacf5c75d889231a8ab2e0f1ceb073 |
|
13-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Rename to better reflect usage (current and planned.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ce72b1755f5993a42c2e04e32a93fa5228a285d4 |
|
11-Feb-2006 |
Jim Laskey <jlaskey@mac.com> |
Reorg for integration with gcc4. Old style debug info will not be passed though to SelIDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cccf1232a69e2d78516c61a97e7bfa26acefb714 |
|
04-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Get rid of some memory leaks identified by Valgrind git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dc19b70d24e5fc0b80da36240550e31eb6ee4ee8 |
|
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Add initial support for immediates. This allows us to compile this: int %rlwnm(int %A, int %B) { %C = call int asm "rlwnm $0, $1, $2, $3, $4", "=r,r,r,n,n"(int %A, int %B, int 4, int 17) ret int %C } into: _rlwnm: or r2, r3, r3 or r3, r4, r4 rlwnm r2, r2, r3, 4, 17 ;; note the immediates :) or r3, r2, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3d81fee8511536962543cbf420fd70ef15ae9c3a |
|
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Initial early support for non-register operands, like immediates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7632e2beb4f0eacc49d580cbf23c89f24ad07ce9 |
|
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
remove some #ifdef'd out code, which should properly be in the dag combiner anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2223aea6ed33e4261d506afdcfbf30ccd8f52bfb |
|
02-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement matching constraints. We can now say things like this: %C = call int asm "xyz $0, $1, $2, $3", "=r,r,r,0"(int %A, int %B, int 4) and get: xyz r2, r3, r4, r2 note that the r2's are pinned together. Yaay for 2-address instructions. 2342 ---------------------------------------------------------------------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4e4b576e2edfc7d40a3d7177c639acbe91cfd45f |
|
01-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Implement simple register assignment for inline asms. This allows us to compile: int %test(int %A, int %B) { %C = call int asm "xyz $0, $1, $2", "=r,r,r"(int %A, int %B) ret int %C } into: (0x8906130, LLVM BB @0x8902220): %r2 = OR4 %r3, %r3 %r3 = OR4 %r4, %r4 INLINEASM <es:xyz $0, $1, $2>, %r2<def>, %r2, %r3 %r3 = OR4 %r2, %r2 BLR which asmprints as: _test: or r2, r3, r3 or r3, r4, r4 xyz $0, $1, $2 ;; need to print the operands now :) or r3, r2, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2cc2f66c25d9576743026688fdae5ed402726532 |
|
01-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
adjust to changes in InlineAsm interface. Fix a few minor bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6656dd1a7888e6dabc82ebce734734127b1df6a7 |
|
31-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Handle physreg input/outputs. We now compile this: int %test_cpuid(int %op) { %B = alloca int %C = alloca int %D = alloca int %A = call int asm "cpuid", "=eax,==ebx,==ecx,==edx,eax"(int* %B, int* %C, int* %D, int %op) %Bv = load int* %B %Cv = load int* %C %Dv = load int* %D %x = add int %A, %Bv %y = add int %x, %Cv %z = add int %y, %Dv ret int %z } to this: _test_cpuid: sub %ESP, 16 mov DWORD PTR [%ESP], %EBX mov %EAX, DWORD PTR [%ESP + 20] cpuid mov DWORD PTR [%ESP + 8], %ECX mov DWORD PTR [%ESP + 12], %EBX mov DWORD PTR [%ESP + 4], %EDX mov %ECX, DWORD PTR [%ESP + 12] add %EAX, %ECX mov %ECX, DWORD PTR [%ESP + 8] add %EAX, %ECX mov %ECX, DWORD PTR [%ESP + 4] add %EAX, %ECX mov %EBX, DWORD PTR [%ESP] add %ESP, 16 ret ... note the proper register allocation. :) it is unclear to me why the loads aren't folded into the adds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
04c62c78f451807b13520efbfe0f5d432bc755cb |
|
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
remove method I just added git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4f16e70faad0840357998059f7f296e5f5e412be |
|
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add a new callback git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0aed7840ec8cc85f91b4aa6e69318bba0cbd1f03 |
|
28-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Implement Promote for VAARG, and allow it to be custom promoted for people who don't want the default behavior (Alpha). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ee625573b5b39b91441fc6ea23f3ba415abdc71f |
|
27-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove TLI.LowerReturnTo, and just let targets custom lower ISD::RET for the same functionality. This addresses another piece of bug 680. Next, on to fixing Alpha VAARG, which I broke last time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ce7518ce92f45568dc7d4cbb863284afb962fec5 |
|
26-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
initial selectiondag support for new INLINEASM node. Note that inline asms with outputs or inputs are not supported yet. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
acc398c195a697795bff3245943d104eb19192b9 |
|
25-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
First part of bug 680: Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same way as everything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3f23952404cd03a8ab934cedcef7916f52a796c0 |
|
25-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
If scheduler choice is the default (-sched=default), use target scheduling preference to determine which scheduler to use. SchedulingForLatency == Breadth first; SchedulingForRegPressure == bottom up register reduction list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
17d52f723421ce28d1b9fe2fc058366ed43ec094 |
|
23-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f0f9c90204c650b9f3c3feb02ccfcb1e40c6acdd |
|
23-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Skeleton of the list schedule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4ef10867499aa146cd819c78d8d37a8353d4f0ff |
|
23-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Factor out more instruction scheduler code to the base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
39a17dd31ddc4af6067940cb31e2c7d380773478 |
|
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix bugs lowering stackrestore, fixing 2004-08-12-InlinerAndAllocas.c on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a3818e6f9a62db0c5b6aee28e44c30d5f96c9fa4 |
|
21-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in a recent refactor that caused a bunch of programs to miscompile or the compiler to crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a9c2091cd38e401c846391c9951ff416e709b65e |
|
21-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Do some code refactoring on Jim's scheduler in preparation of the new list scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4eebb60f843e0aa67b62f3b8643101bc0e39531d |
|
20-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
If the target doesn't support f32 natively, insert the FP_EXTEND in target-indep code, so that the LowerReturn code doesn't have to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d12b2d7b5ae73c6f1b89a30f12e9d30e731b2e20 |
|
18-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Temporary work around for a libcall insertion bug: If a target doesn't support FSIN/FCOS nodes, do not lower sin/cos to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4eb2e3a6f45e6f0a4a8f0002918f8d14c34169c1 |
|
17-Jan-2006 |
Robert Bocchino <bocchino@illinois.edu> |
Support for the insertelement operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0b118206bf3411722707f2e5cab8fd2eedcd50d6 |
|
16-Jan-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR411: This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3a04ffbf6daa66e489aaf29f6c9c728d7272d8a8 |
|
14-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove some duplicated code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d88fc03602947b5baa35c8b09fe8bcfa2b4a03c1 |
|
14-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
bswap implementation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
140d53c99c3a70b9d3858a3c87f8ecb098994748 |
|
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Compile llvm.stacksave/restore into STACKSAVE/STACKRESTORE nodes, and allow targets to custom expand them as they desire. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e8f7a4bbee5b29d0c94120e7e24365113758f0a2 |
|
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add "support" for stacksave/stackrestore to the dag isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c0f4cd99316b0b9ae10b5774d1036d74d838f0af |
|
10-Jan-2006 |
Robert Bocchino <bocchino@illinois.edu> |
Added selection DAG support for the extractelement operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b2efb853f00d45b1c8d57f92acd0028fbdeffda6 |
|
04-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Applied some recommend changes from sabre. The dominate one beginning "let the pass manager do it's thing." Fixes crash when compiling -g files and suppresses dwarf statements if no debug info is present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9797c5cc3ebc2c78ff30866ce0650d87ea02946c |
|
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
enable the gep isel opt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3b841e9f52611c1f92c60f979c775adf2c1fe22d |
|
21-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Lower ConstantAggregateZero into zeros git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f5395cee6a24699a016b2e379cf4804b09ce5030 |
|
16-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Added source file/line correspondence for dwarf (PowerPC only at this point.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
86cb643801be1308ba1da7db774b64852a119e94 |
|
13-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Don't lump the filename and working dir together git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac22c83e6853c759a10eb7310b019b22e1d42d16 |
|
12-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Accept and ignore prefetches for now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3802c2552fe4475418db3c948e7601d7259f996d |
|
11-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Minor tweak to get isel opt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c78b0b740bcf2e00a8871090709c3571fe442f07 |
|
08-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
improve code insertion in two ways: 1. Only forward subst offsets into loads and stores, not into arbitrary things, where it will likely become a load. 2. If the source is a cast from pointer, forward subst the cast as well, allowing us to fold the cast away (improving cases when the cast is from an alloca or global). This hasn't been fully tested, but does appear to further reduce register pressure and improve code. Lets let the testers grind on it a bit. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cc827e60b67b2cbcf08a37b119e68081e4171b8a |
|
07-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a crash where ConstantVec nodes were being generated with the wrong type when the target did not support them. Also teach Legalize how to expand ConstantVecs. This allows us to generate _test: lwz r2, 12(r3) lwz r4, 8(r3) lwz r5, 4(r3) lwz r6, 0(r3) addi r2, r2, 4 addi r4, r4, 3 addi r5, r5, 2 addi r6, r6, 1 stw r2, 12(r3) stw r4, 8(r3) stw r5, 4(r3) stw r6, 0(r3) blr For: void %test(%v4i *%P) { %T = load %v4i* %P %S = add %v4i %T, <int 1, int 2, int 3, int 4> store %v4i %S, %v4i * %P ret void } On PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8cfa57b1b4eade4e0101195b2f94ab288cd03563 |
|
06-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the SelectionDAG ISel how to turn ConstantPacked values into constant nodes with vector types. Also teach the asm printer how to print ConstantPacked constant pool entries. This allows us to generate altivec code such as the following, which adds a vector constantto a packed float. LCPI1_0: <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 > .space 4 .space 4 .space 4 .long 1065353216 ; float 1 .text .align 4 .globl _foo _foo: lis r2, ha16(LCPI1_0) la r2, lo16(LCPI1_0)(r2) li r4, 0 lvx v0, r4, r2 lvx v1, r4, r3 vaddfp v0, v1, v0 stvx v0, r4, r3 blr For the llvm code: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 > store <4 x float> %tmp2, <4 x float> *%a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c88d8e944dae71e31595b8ae264668e68db6b8ed |
|
05-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the #1 code quality problem that I have seen on X86 (and it also affects PPC and other targets). In a particular, consider code like this: struct Vector3 { double x, y, z; }; struct Matrix3 { Vector3 a, b, c; }; double dot(Vector3 &a, Vector3 &b) { return a.x * b.x + a.y * b.y + a.z * b.z; } Vector3 mul(Vector3 &a, Matrix3 &b) { Vector3 r; r.x = dot( a, b.a ); r.y = dot( a, b.b ); r.z = dot( a, b.c ); return r; } void transform(Matrix3 &m, Vector3 *x, int n) { for (int i = 0; i < n; i++) x[i] = mul( x[i], m ); } we compile transform to a loop with all of the GEP instructions for indexing into 'm' pulled out of the loop (9 of them). Because isel occurs a bb at a time we are unable to fold the constant index into the loads in the loop, leading to PPC code that looks like this: LBB3_1: ; no_exit.preheader li r2, 0 addi r6, r3, 64 ;; 9 values live across the loop body! addi r7, r3, 56 addi r8, r3, 48 addi r9, r3, 40 addi r10, r3, 32 addi r11, r3, 24 addi r12, r3, 16 addi r30, r3, 8 LBB3_2: ; no_exit lfd f0, 0(r30) lfd f1, 8(r4) fmul f0, f1, f0 lfd f2, 0(r3) ;; no constant indices folded into the loads! lfd f3, 0(r4) lfd f4, 0(r10) lfd f5, 0(r6) lfd f6, 0(r7) lfd f7, 0(r8) lfd f8, 0(r9) lfd f9, 0(r11) lfd f10, 0(r12) lfd f11, 16(r4) fmadd f0, f3, f2, f0 fmul f2, f1, f4 fmadd f0, f11, f10, f0 fmadd f2, f3, f9, f2 fmul f1, f1, f6 stfd f0, 0(r4) fmadd f0, f11, f8, f2 fmadd f1, f3, f7, f1 stfd f0, 8(r4) fmadd f0, f11, f5, f1 addi r29, r4, 24 stfd f0, 16(r4) addi r2, r2, 1 cmpw cr0, r2, r5 or r4, r29, r29 bne cr0, LBB3_2 ; no_exit uh, yuck. With this patch, we now sink the constant offsets into the loop, producing this code: LBB3_1: ; no_exit.preheader li r2, 0 LBB3_2: ; no_exit lfd f0, 8(r3) lfd f1, 8(r4) fmul f0, f1, f0 lfd f2, 0(r3) lfd f3, 0(r4) lfd f4, 32(r3) ;; much nicer. lfd f5, 64(r3) lfd f6, 56(r3) lfd f7, 48(r3) lfd f8, 40(r3) lfd f9, 24(r3) lfd f10, 16(r3) lfd f11, 16(r4) fmadd f0, f3, f2, f0 fmul f2, f1, f4 fmadd f0, f11, f10, f0 fmadd f2, f3, f9, f2 fmul f1, f1, f6 stfd f0, 0(r4) fmadd f0, f11, f8, f2 fmadd f1, f3, f7, f1 stfd f0, 8(r4) fmadd f0, f11, f5, f1 addi r6, r4, 24 stfd f0, 16(r4) addi r2, r2, 1 cmpw cr0, r2, r5 or r4, r6, r6 bne cr0, LBB3_2 ; no_exit This is much nicer as it reduces register pressure in the loop a lot. On X86, this takes the function from having 9 spilled registers to 2. This should help some spec programs on X86 (gzip?) This is currently only enabled with -enable-gep-isel-opt to allow perf testing tonight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d67b3a8bf75d4d3c50263960a9375e6856588f2c |
|
03-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
dbg.stoppoint returns a value, don't forget to init it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f43a3ca26d7bf431be5cdfb5963350a158e840af |
|
30-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
First chunk of actually generating vector code for packed types. These changes allow us to generate the following code: _foo: li r2, 0 lvx v0, r2, r3 vaddfp v0, v0, v0 stvx v0, r2, r3 blr for this llvm: void %foo(<4 x float>* %a) { entry: %tmp1 = load <4 x float>* %a %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float>* %a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6ff7240a5c484af6e42e2ba6a6d7e03ddf844922 |
|
30-Nov-2005 |
Reid Spencer <rspencer@reidspencer.com> |
Fix a problem with llvm-ranlib that (on some platforms) caused the archive file to become corrupted due to interactions between mmap'd memory segments and file descriptors closing. The problem is completely avoiding by using a third temporary file. Patch provided by Evan Jones git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
36ce69195ed488034d0bb11180cc2ebd923679c8 |
|
29-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for a new STRING and LOCATION node for line number support, patch contributed by Daniel Berlin, with a few cleanups here and there by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ab48be377298bd509427a29e174cf4e305138819 |
|
22-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Check in code to scalarize arbitrarily wide packed types for some simple vector operations (load, add, sub, mul). This allows us to codegen: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } on ppc as: _foo: lfs f0, 12(r3) lfs f1, 8(r3) lfs f2, 4(r3) lfs f3, 0(r3) fadds f0, f0, f0 fadds f1, f1, f1 fadds f2, f2, f2 fadds f3, f3, f3 stfs f0, 12(r3) stfs f1, 8(r3) stfs f2, 4(r3) stfs f3, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4ef3b817fee7ea5be7219e00ab8e15976bfe279f |
|
22-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Rather than attempting to legalize 1 x float, make sure the SD ISel never generates it. Make MVT::Vector expand-only, and remove the code in Legalize that attempts to legalize it. The plan for supporting N x Type is to continually epxand it in ExpandOp until it gets down to 2 x Type, where it will be scalarized into a pair of scalars. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b67eb9131c5c04d2e55c6b587fde954619feceaf |
|
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Unbreak codegen of bools. This should fix the llc/jit/llc-beta failures from last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5fbb5d2459a5410590f285250faa604576308a93 |
|
19-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach LLVM how to scalarize packed types. Currently, this only works on packed types with an element count of 1, although more generic support is coming. This allows LLVM to turn the following code: void %foo(<1 x float> * %a) { entry: %tmp1 = load <1 x float> * %a; %tmp2 = add <1 x float> %tmp1, %tmp1 store <1 x float> %tmp2, <1 x float> *%a ret void } Into: _foo: lfs f0, 0(r3) fadds f0, f0, f0 stfs f0, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e21ea61588996609f827213a2701a204f2f13fb3 |
|
18-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Split out the shift code from visitBinary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b1a5a5c4c0182205b91b962def7b008228a1f7e6 |
|
16-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
when debugging lower dbg intrinsics to calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8b91c77385a055474d271aa8c10f0382fdeaafeb |
|
11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
added a chain output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
51b8d54922350b7e1c2cd5a5183ef2c5f5d1b1d5 |
|
11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
continued readcyclecounter support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c9ea6fde305b35ab7c9f909ac390d4b53e33d536 |
|
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor intrinsic lowering stuff out of visitCall git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6b2d69655ace2788b244c8a4ebcfb6f2a926ad92 |
|
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/X86/shift-folding.ll:test3 on X86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7436b57de32333cc337b8c7cea208c8863eee793 |
|
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Avoid creating a token factor node in trivially redundant cases. This eliminates almost one node per block in common cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7c0104b525a4ba8b5268ee5455f92b011f7cc263 |
|
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Handle GEP's a bit more intelligently. Fold constant indices early and turn power-of-two multiplies into shifts early to improve compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ae232e7a1055033436370c0b3aecf054fa44d5e7 |
|
06-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Add the necessary support to the ISel to allow targets to codegen the new alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
bf209489ad3f7a38ce6b2159b22d8727500e60c2 |
|
30-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Significantly simplify this code and make it more aggressive. Instead of having a special case hack for X86, make the hack more general: if an incoming argument register is not used in any block other than the entry block, don't copy it to a vreg. This helps us compile code like this: %struct.foo = type { int, int, [0 x ubyte] } int %test(%struct.foo* %X) { %tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100 %tmp = load ubyte* %tmp1 ; <ubyte> [#uses=1] %tmp2 = cast ubyte %tmp to int ; <int> [#uses=1] ret int %tmp2 } to: _test: lbz r3, 108(r3) blr instead of: _test: lbz r2, 108(r3) or r3, r2, r2 blr The (dead) copy emitted to copy r3 into a vreg for extra-block uses was increasing the live range of r3 past the load, preventing the coallescing. This implements CodeGen/PowerPC/reg-coallesce-simple.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
4a95945fa5aa431110f50092f4a45d24772a553b |
|
19-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Add the ability to lower return instructions to TargetLowering. This allows us to lower legal return types to something else, to meet ABI requirements (such as that i64 be returned in two i32 regs on Darwin/ppc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d222f6ab67472fa2b2e211172a11b43905aa9445 |
|
19-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Fix Generic/2005-10-18-ZeroSizeStackObject.ll by not requesting a zero sized stack object if either the array size or the type size is zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2dfa8192abaad8a3c29132dba50e8b85218e918c |
|
19-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
remove hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
af21d55aee8d6852fedfd630395a3c7c95df8f12 |
|
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Enable Nate's excellent DAG combiner work by default. This allows the removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d48050aa1509130871b8bb2453270c92b969c2e7 |
|
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
make sure that -view-isel-dags is the input to the isel, not the input to the second phase of dag combining git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2aeaf4e839438d51766996006fc22310d05ab2a7 |
|
01-Oct-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
01b3d73c20f5afb8265ae943a8ba23c2238c5eea |
|
29-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add FP versions of the binary operators, keeping the int and fp worlds seperate. Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
6c38b33613d64522581dc55d82fffa4aee0e9f22 |
|
28-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
If the target prefers it, use _setjmp/_longjmp should be used instead of setjmp/longjmp for llvm.setjmp/llvm.longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fa57702388f139e964befecb4b98c7dfe836945f |
|
13-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
If a function has liveins, and if the target requested that they be plopped into particular vregs, emit copies into the entry MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2300f5504643eaddc307d3db8a3ccd224c4fa251 |
|
07-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Add an option to the DAG Combiner to enable it for beta runs, and turn on that option for PowerPC's beta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fd88f64934c43613dd4a70b97db620de1338782b |
|
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Don't create zero sized stack objects even for array allocas with a zero number of elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a639a43602cd64087a9730632fbf6f7cf7d88276 |
|
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the release build, noticed by Eric van Riet Paap git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fab08875b73656f373b10a59aad475615df82baf |
|
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
For values that are live across basic blocks and need promotion, use ANY_EXTEND instead of ZERO_EXTEND to eliminate extraneous extensions. This eliminates dead zero extensions on formal arguments and other cases on PPC, implementing the newly tightened up test/Regression/CodeGen/PowerPC/small-arguments.ll test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
da8abb02397d7cd62a1e16e7c534edd7096ac873 |
|
01-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
It is NDEBUG not _NDEBUG git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
88b9c159120703555a30314411af26f425597d90 |
|
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Disable this code, which broke many tests last night git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9d3a483a3826d3749c2db9863ddb6e824f1dd6d4 |
|
27-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Don't copy regs that are only used in the entry block into a vreg. This changes the code generated for: short %test(short %A) { %B = xor short %A, -32768 ret short %B } to: _test: xori r2, r3, 32768 xoris r2, r2, 65535 extsh r3, r2 blr instead of: _test: rlwinm r2, r3, 0, 16, 31 xori r2, r3, 32768 xoris r2, r2, 65535 extsh r3, r2 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
025c39bf36b6bc2f35a5544338de6cf96fa511a9 |
|
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Call the InsertAtEndOfBasicBlock hook if the usesCustomDAGSchedInserter flag is set on an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
82cfa5d616ff0f760425cbf6e2983fbab618fbda |
|
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Make -view-isel-dags show the dag before instruction selecting, in case the target isel crashes due to unimplemented features like calls :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8f03405ee57094d627c342fb6087399a30009a02 |
|
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem where constant expr shifts would not have their shift amount promoted to the right type. This fixes: IA64/2005-08-22-LegalizerCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
36b708f05720c407f5e5657f2fd4b0677702ad46 |
|
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Enable critical edge splitting by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
495a0b51915eb763576874f29192820b731edc22 |
|
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new beta option for critical edge splitting, to avoid a problem that Nate noticed in yacr2 (and I know occurs in other places as well). This is still rough, as the critical edge blocks are not intelligently placed but is added to get some idea to see if this improves performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fae59b99b8d1942f30a4be609423282c3fd62dd8 |
|
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a regression on X86, where FP values can be promoted too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d5d0f9bd20d9df07d6b4d41b7e8ed6d33b6a649d |
|
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef) used to tack a register number onto the node. Instead of doing this, make a new node, RegisterSDNode, which is a leaf containing a register number. These three operations just become normal DAG nodes now, instead of requiring special handling. Note that with this change, it is no longer correct to make illegal CopyFromReg/CopyToReg nodes. The legalizer will not touch them, and this is bad, so don't do it. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7cf7e3f33f25544d08492d47cc8a1cbba25dc8d7 |
|
09-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate the SetCCSDNode in favor of a CondCodeSDNode class. This pulls the CC out of the SetCC operation, making SETCC a standard ternary operation and CC's a standard DAG leaf. This will make it possible for other node to use CC's as operands in the future... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
00b16889ab461b7ecef1c91ade101186b7f1fce2 |
|
27-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Eliminate all remaining tabs and trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
700a3c97e90dfdad049f460d4547bff6e48dd7e7 |
|
19-Jul-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove unnecessary FP_EXTEND. This causes worse codegen for SSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e64e72b794cfa385372436b3c88460aeee0acbf6 |
|
05-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Make several cleanups to Andrews varargs change: 1. Pass Value*'s into lowering methods so that the proper pointers can be added to load/stores from the valist 2. Intrinsics that return void should only return a token chain, not a token chain/retval pair. 3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
06ef88472f7bac3512e224974e87a0a456471b82 |
|
29-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
restore old srcValueNode behavior and try to to work around it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
782ad62f334c732143047950dff4a1692538735d |
|
29-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
213e557cef3e653e2d3a00b07b137c143128430a |
|
22-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
If we support structs as va_list, we must pass pointers to them to va_copy See last commit for LangRef, this implements it on all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
558bc88a00930fce283b240b7c9555f649a18f1b |
|
18-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
core changes for varargs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1ca85d567c8860a8a7cf0730107f4ee701fa4fd0 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fix construction of ioport intrinsics, fixing X86/io.llx and io-port.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
adf6c2a0cb638e8b211200b57b927d16f6e1cfc4 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate special purpose hacks for dynamic_stack_alloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
50381b6c4180e9a2b983d4623da2e485cd768632 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
LowerOperation takes a dag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a8217e3000b5b01c4a95316aef078a9d02a9a119 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Align doubles on 8-byte boundaries if possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
adf6a965a321372c640845407195594835921eb4 |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add an isTailCall flag to LowerCallTo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
405ef9e28d955c1b107c27bedfd4be8b9165af01 |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Emit function entry code after lowering hte arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
3aa7832c821c19a57aaf6ce87f16d8b49931e644 |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Allow targets to emit code into the entry block of each function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
9092fa310c8b2b1645b0d448c4c34b1e8ddc131d |
|
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Pass calling convention to use into lower call to git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
16ce0df92717cd1474029d87efe596d000dc2caa |
|
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
wrap long line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ef311aa7cf26ae0cbb6e784d767801b9058dd24b |
|
10-May-2005 |
Chris Lattner <sabre@nondot.org> |
The semantics of cast X to bool are a comparison against zero, not a truncation! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d0f6c1f52dddf11701406c31fd3e9448314a8366 |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for matching the READPORT, WRITEPORT, READIO, WRITEIO intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fd414a27fdc85e45af00ed4329cb0e6508470dea |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Don't use the load/store instruction as the source pointer, use the pointer being stored/loaded through! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
369e6db9b6033bb60519b0ad84afeacc9ec9b416 |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
wrap long lines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7ea0ade1b6a16b5836645b61da671715180ab039 |
|
05-May-2005 |
Chris Lattner <sabre@nondot.org> |
When hitting an unsupported intrinsic, actually print it Lower debug info to noops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
691ef2ba066dda14ae4ac0ad645054fbc967785a |
|
03-May-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Implement count leading zeros (ctlz), count trailing zeros (cttz), and count population (ctpop). Generic lowering is implemented, however only promotion is implemented for SelectionDAG at the moment. More coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f76e7dc8d8ac1855ef59698e82c757548ef4ca65 |
|
30-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen and legalize sin/cos/llvm.sqrt as FSIN/FCOS/FSQRT calls. This patch was contributed by Morten Ofstad, with some minor tweaks and bug fixes added by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2d86ea21dd76647cb054fd5d27df9e49efc672b6 |
|
27-Apr-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Implement Value* tracking for loads and stores in the selection DAG. This enables one to use alias analysis in the backends. (TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*. Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
dedf2bd5a34dac25e4245f58bb902ced6b64edd9 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
edf128a7fa90f2b0b7ee24741a04a7ae1ecd6f7e |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b882752bd04602249d391699dc7183de007f8964 |
|
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fold shift by size larger than type size to undef Make llvm undef values generate ISD::UNDEF nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e7ccd4acd2ee9753e6d212efd522be5c7de154d7 |
|
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Emit BRCONDTWOWAY when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c0f18152d94bf65061fab4b80869998cfb0439e1 |
|
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
transform fabs/fabsf calls into FABS nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
b9fccc41933648647e3f7669612c683eb5de0d58 |
|
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Turn -0.0 - X -> fneg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
95762124a1d781cc0f8cbc4c22e9c5c1358d7ea0 |
|
31-Mar-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
PCMarker support for DAG and Alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a33ef4816d2c192e36e7c025d18c66e89ef9d311 |
|
30-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Instead of setting up the CFG edges at selectiondag construction time, set them up after the code has been emitted. This allows targets to select one mbb as multiple mbb's as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f51d3bd6769d46e7cf7beaa283d1ca449629bd32 |
|
29-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug that andrew noticed where we do not correctly sign/zero extend returned integer values all of the way to 64-bits (we only did it to 32-bits leaving the top bits undefined). This causes problems for targets like alpha whose ABI's define the top bits too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
8e21e71b248365c69c0f666518c378b5819ce6fb |
|
26-Mar-2005 |
Nate Begeman <natebegeman@mac.com> |
Change interface to LowerCallTo to take a boolean isVarArg argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
e4d5c441e04bdc00ccf1804744af670655123b07 |
|
15-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
This mega patch converts us from using Function::a{iterator|begin|end} to using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d3f03e4b50feb6abfa9fec8b0aa705d45134c59e |
|
17-Feb-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix compilation errors with VS 2005, patch by Aaron Gray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
aa781b34040f07db00fb4b59cb567e6ad9ef5861 |
|
17-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Don't sink argument loads into loops or other bad places. This disables folding of argument loads with instructions that are not in the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ac9dc08c7f0ae60c125624d72c3022025d79ee9e |
|
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in SelectionDAG interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
68cd65ea689907fb8a4aa80d72d182921e94607f |
|
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Get this to work for 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
2c49f2795514a7c56b680ba0310d7eb0a8a43289 |
|
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Support targets that do not use i8 shift amounts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ef5cd1d3cf7d0b20987a545fcd2d0af2bfe6c422 |
|
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Teach legalize to promote copy(from|to)reg, instead of making the isel pass do it. This results in better code on X86 for floats (because if strict precision is not required, we can elide some more expensive double -> float conversions like the old isel did), and allows other targets to emit CopyFromRegs that are not legal for arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f30b73b1c6b6ca8453dc61eb3777b4e4414d3839 |
|
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Allow setcc operations to have nonbool types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
d3948116b81b11e82246c11389a9b4ce7e619fbb |
|
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Non-volatile loads can be freely reordered against each other. This fixes X86/reg-pressure.ll again, and allows us to do nice things in other cases. For example, we now codegen this sort of thing: int %loadload(int *%X, int* %Y) { %Z = load int* %Y %Y = load int* %X ;; load between %Z and store %Q = add int %Z, 1 store int %Q, int* %Y ret int %Y } Into this: loadload: mov %EAX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%EAX] mov %ECX, DWORD PTR [%ESP + 8] inc DWORD PTR [%ECX] ret where we weren't able to form the 'inc [mem]' before. This also lets the instruction selector emit loads in any order it wants to, which can be good for register pressure as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
a651cf67b77cd477dd7da4baa8688af2ccd4f7f6 |
|
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Don't call SelectionDAG.getRoot() directly, go through a forwarding method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
0afa8e348eab21d3e09ae3240544886d61879266 |
|
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement a target independent optimization to codegen arguments only into the basic block that uses them if possible. This is a big win on X86, as it lets us fold the argument loads into instructions and reduce register pressure (by not loading all of the arguments in the entry block). For this (contrived to show the optimization) testcase: int %argtest(int %A, int %B) { %X = sub int 12345, %A br label %L L: %Y = add int %X, %B ret int %Y } we used to produce: argtest: mov %ECX, DWORD PTR [%ESP + 4] mov %EAX, 12345 sub %EAX, %ECX mov %EDX, DWORD PTR [%ESP + 8] .LBBargtest_1: # L add %EAX, %EDX ret now we produce: argtest: mov %EAX, 12345 sub %EAX, DWORD PTR [%ESP + 4] .LBBargtest_1: # L add %EAX, DWORD PTR [%ESP + 8] ret This also fixes the FIXME in the code. BTW, this occurs in real code. 164.gzip shrinks from 8623 to 8608 lines of .s file. The stack frame in huft_build shrinks from 1644->1628 bytes, inflate_codes shrinks from 116->108 bytes, and inflate_block from 2620->2612, due to fewer spills. Take that alkis. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
068a81e9fca511b9a3b3a0f28a8988a57f994652 |
|
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor code into a new method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
171453a284b097f1ee89fb87ff495c3a6c7b6297 |
|
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
add method stub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
c8ea3c47103656a0924909f41651bf5d396c26cd |
|
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for promoted registers being live across blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
98e5c0e5e4c5be1b531d287d0a1373a62fe562e2 |
|
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Use the new TLI method to get this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
fb849800ea2040c188365c265421ad54fbdcf219 |
|
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that require promotions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
859157daee6a4b49e99921832e1dde065167b317 |
|
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add new SIGN_EXTEND_INREG, ZERO_EXTEND_INREG, and FP_ROUND_INREG operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
69a52155d2eff066b49dbac385113002fd9dba14 |
|
14-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to CopyFromReg changes, implement deletion of truncating/extending stores/loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
18c2f13e0f9d0e5d6227cf6d1881e9ee3d1b6109 |
|
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add new ImplicitDef node, rename CopyRegSDNode class to RegSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
5a6c6d98d561df671350a56c8031a3611f1c46fa |
|
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Don't forget the existing root. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ddb870b065984007a0df645ad97c6ad6a6f12de0 |
|
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen independent ops as being independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7944d9d9957db1efe085d9df3ea89826f50029b7 |
|
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add an option to view the selection dags as they are generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f1fdacae8c1bd9e5ff4619546b3a28e93fb75ab5 |
|
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
add an assertion, avoid creating copyfromreg/copytoreg pairs that are the same for PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7041ee35adecb864e3e8df490aa73b0605fbfb5a |
|
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Turn memset/memcpy/memmove into the corresponding operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ee749d7488bd42df0f67e2d80048c63415943785 |
|
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Handle static alloca arguments to PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
39ae3622791986a0232f7e4797b633f8fa9e54d2 |
|
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Use new interfaces to correctly lower varargs and return/frame address intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
64e14b1679fa3649b286402ea254d663ac43ef91 |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for llvm.setjmp and longjmp. Only 3 SingleSource/UnitTests fail now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f26bc8ef4827cf0023a7052b62b920b41813d473 |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence VS warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
cf5734dddd66af9388a171b44996505ede47feed |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to changes in LowerCAllTo interfaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
ae0aacb8331e1227abea6601e531a10d0e65fdca |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for FP->INT conversions and back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
7cc4777a263f6a52877d29201311fde5f6edb632 |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement support for long GEP indices on 32-bit archs and support for int GEP indices on 64-bit archs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
f44fd88e9cdd7b47acb71ac78e3dccb91319c72d |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix handling of dead PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|
1c08c714bb3d07c3b39f06bfcbb4559fefca73f9 |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Initial implementation of the SelectionDAGISel class. This contains most of the code for lowering from LLVM code to a SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
|