cd81d94322a39503e4a3e87b6ee03d4fcb3465fb |
|
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/FastISel.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/FastISel.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
cc7052343e5e955d4e2f48885c06360f9003390a |
|
15-Nov-2013 |
Bob Wilson <bob.wilson@apple.com> |
Avoid illegal integer promotion in fastisel Stop folding constant adds into GEP when the type size doesn't match. Otherwise, the adds' operands are effectively being promoted, changing the conditions of an overflow. Results are different when: sext(a) + sext(b) != sext(a + b) Problem originally found on x86-64, but also fixed issues with ARM and PPC, which used similar code. <rdar://problem/15292280> Patch by Duncan Exon Smith! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
54de36b39d9e6fe61e1fe697737056c567e7008a |
|
14-Oct-2013 |
David Blaikie <dblaikie@gmail.com> |
Fix indenting. That wasn't confusing /at all/... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0a4371a2073d8841768cf3e8cf65601a8d7cc4fc |
|
19-Sep-2013 |
Adrian Prantl <aprantl@apple.com> |
Debug info: Get rid of the VLA indirection hack in FastISel. Use the DIVariable::isIndirect() flag set by the frontend instead of guessing whether to set the machine location's indirection bit. Paired commit with CFE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
45ff709caf46d9f472c9229493853dec27477935 |
|
10-Jul-2013 |
Adrian Prantl <aprantl@apple.com> |
Un-break the buildbot by tweaking the indirection flag. Pulled in a testcase from the debuginfo-test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
155615d7dc4e4fbfd3b7273720a76356468edf46 |
|
08-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Remove trailing whitespace from SelectionDAG/*.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1ab111ed01457887a8dece6fb36336aff41cc703 |
|
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ef22e0e0b583e727f01ae70d51a143172eb31814 |
|
04-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
FastISel can only apend to basic blocks. Compute the insertion point from the end of the basic block instead of skipping labels from the front. This caused failures in landing pads when live-in copies where inserted before instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
cbafae6d33031a72ba8219c28cb0e852511f79a3 |
|
28-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify. No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. Also update testing cases to make them conform to the format of DI classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1948910e3186d31bc0d213ecd0d7e87bb2c2760d |
|
22-Jun-2013 |
David Blaikie <dblaikie@gmail.com> |
DebugInfo: Don't lose unreferenced non-trivial by-value parameters A FastISel optimization was causing us to emit no information for such parameters & when they go missing we end up emitting a different function type. By avoiding that shortcut we not only get types correct (very important) but also location information (handy) - even if it's only live at the start of a function & may be clobbered later. Reviewed/discussion by Evan Cheng & Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
5da4e4f3b10148e811de82ec57b3f82c15411a81 |
|
22-May-2013 |
Adrian Prantl <aprantl@apple.com> |
Unify formatting of debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.cpp
|
462123f66159a8c7ff34b87cb269955252be3ec0 |
|
20-Apr-2013 |
Eli Bendersky <eliben@google.com> |
Simplify the code in FastISel::tryToFoldLoad, add an assertion and fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
7ae3bb83c278e991940d022b7b48d996da408abf |
|
29-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add a preemptive fix for the case where we fail to materialize an immediate in a register. I don't believe this should ever fail, but I see no harm in trying to make this code bullet proof. I've added an assert to ensure my assumtion is correct. If the assertion fires something is wrong and we should fix it, rather then just silently fall back to SelectionDAG isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
33cdfe9f1943418604be5c800800394ae809fc4c |
|
11-Mar-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Fix a crasher newly introduced in r176659/r176649, where fast-isel tries to lower an expect intrinsic that is a constant expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
4fde76db466a749200af555b0f400af873111767 |
|
07-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Seriously, add support for the expect intrinsic. rdar://13370942 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
33947b4391458ed3ba2d7e7c741968325cbffa1d |
|
07-Mar-2013 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add support for the expect intrinsic. rdar://13370942 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0a4da5f0fe70d0da620e504863f24881a5f9f7cb |
|
28-Feb-2013 |
Eli Bendersky <eliben@google.com> |
Put some per-instruction statistics of fast isel under NDEBUG, together with other per-instruction statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7dbd34b199be8d053240a67cc1e81a04096af1c2 |
|
27-Feb-2013 |
Michael Ilseman <milseman@apple.com> |
Reverted: r176136 - Have a way for a target to opt-out of target-independent fast isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
bdc98d3510c1b3d32679ed3188becdc6d6dfd545 |
|
27-Feb-2013 |
Michael Ilseman <milseman@apple.com> |
Have a way for a target to opt-out of target-independent fast isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b704ffbb46cae716dc51bd8e6ba425c0a4949a47 |
|
22-Feb-2013 |
Pete Cooper <peter_cooper@apple.com> |
Fix isa<> check which could never be true. It was incorrectly checking a Function* being an IntrinsicInst* which isn't possible. It should always have been checking the CallInst* instead. Added test case for x86 which ensures we only get one constant load. It was 2 before this change. rdar://problem/13267920 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.cpp
|
3d170e64ca1af491e2aa58f882f93b8e8111eef8 |
|
17-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Revert/correct some FastISel changes in r170104 (EVT->MVT for TargetLowering::getRegClassFor). Some isSimple() guards were missing, or getSimpleVT() were hoisted too far, resulting in asserts on valid LLVM assembly input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a61b17c18a67f1b3faef2f2108379c4337ce9bb7 |
|
13-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getRegClassFor to take an MVT, instead of EVT. Accordingly, add helper funtions getSimpleValueType (in parallel to getValueType) in SDValue, SDNode, and TargetLowering. This is the first, in a series of patches. This is the second attempt. In the first attempt (r169837), a few getSimpleVT() were hoisted too far, detected by bootstrap failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
34525f9ac098c1c6bc9002886d6da3039a284fd2 |
|
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Revert EVT->MVT changes, r169836-169851, due to buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
8163ca76f0b0d336c5436364ffb3b85be1162e7a |
|
11-Dec-2012 |
Patrik Hagglund <patrik.h.hagglund@ericsson.com> |
Change TargetLowering::getRegClassFor to take an MVT, instead of EVT. Accordingly, add helper funtions getSimpleValueType (in parallel to getValueType) in SDValue, SDNode, and TargetLowering. This is the first, in a series of patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
ece6c6bb6329748b92403c06ac87f45c43485911 |
|
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the series of commits starting with r166578 which introduced the getIntPtrType support for multiple address spaces via a pointer type, and also introduced a crasher bug in the constant folder reported in PR14233. These commits also contained several problems that should really be addressed before they are re-committed. I have avoided reverting various cleanups to the DataLayout APIs that are reasonable to have moving forward in order to reduce the amount of churn, and minimize the number of commits that were reverted. I've also manually updated merge conflicts and manually arranged for the getIntPtrType function to stay in DataLayout and to be defined in a plausible way after this revert. Thanks to Duncan for working through this exact strategy with me, and Nick Lewycky for tracking down the really annoying crasher this triggered. (Test case to follow in its own commit.) After discussing with Duncan extensively, and based on a note from Micah, I'm going to continue to back out some more of the more problematic patches in this series in order to ensure we go into the LLVM 3.2 branch with a reasonable story here. I'll send a note to llvmdev explaining what's going on and why. Summary of reverted revisions: r166634: Fix a compiler warning with an unused variable. r166607: Add some cleanup to the DataLayout changes requested by Chandler. r166596: Revert "Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! r166591: Delete a directory that wasn't supposed to be checked in yet. r166578: Add in support for getIntPtrType to get the pointer type based on the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
aa76e9e2cf50af190de90bc778b7f7e42ef9ceff |
|
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in support for getIntPtrType to get the pointer type based on the address space. This checkin also adds in some tests that utilize these paths and updates some of the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
76ad43c6e1619ed4c087b8ccb2cd573eb9d7093e |
|
03-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Revert 165051-165049 while looking into the foreach.m failure in more detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
96bd4418b2320dec7cf9573c4f1da0a0ef31465e |
|
02-Oct-2012 |
Eric Christopher <echristo@apple.com> |
Remove the SavePoint infrastructure from fast isel, replace with just an insert point from the MachineBasicBlock and let the location be updated as we access it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
982dc84762fc0c2ca35e6947d648a690dd22343c |
|
03-Aug-2012 |
Bob Wilson <bob.wilson@apple.com> |
Try to reduce the compile time impact of r161232. The previous change caused fast isel to not attempt handling any calls to builtin functions. That included things like "printf" and caused some noticable regressions in compile time. I wanted to avoid having fast isel keep a separate list of functions that had to be kept in sync with what the code in SelectionDAGBuilder.cpp was handling. I've resolved that here by moving the list into TargetLibraryInfo. This is somewhat redundant in SelectionDAGBuilder but it will ensure that we keep things consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
6016a4a1627726b7419e1c95c6c3e67138100d23 |
|
06-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fd065bbed1d731b49b1b4a5c4c050ce461be80b4 |
|
06-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Tell fast-isel to do nothing with the new donothing intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
68f25571e759c1fcf2da206109647259f49f7416 |
|
01-Jun-2012 |
Manman Ren <mren@apple.com> |
ARM: properly handle alignment for struct byval. Factor out the expansion code into a function. This change is to be enabled in clang. rdar://9877866 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ee0d5d4398fb855c6674da94d902ef45e944f375 |
|
20-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly constrain register classes for sub-registers. Not all GR64 registers have sub_8bit sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
aefd36bdda0dac496b8acabb25f0de29b370ebca |
|
12-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Revert 156658. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
550a08a876760e305dab25bd22f28acf8ffdeb18 |
|
12-May-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Fast-isel doesn't use the expect intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
18112d83e7d54597bcd5870fb411c7997e02bc1e |
|
10-Apr-2012 |
Eric Christopher <echristo@apple.com> |
To ensure that we have more accurate line information for a block don't elide the branch instruction if it's the only one in the block, otherwise it's ok. PR9796 and rdar://11215207 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
84364a4e23e8ba2fe9332da99bcab31acc173381 |
|
30-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
If we have a VLA that has a "use" in a metadata node that's then used here but it has no other uses, then we have a problem. E.g., int foo (const int *x) { char a[*x]; return 0; } If we assign 'a' a vreg and fast isel later on has to use the selection DAG isel, it will want to copy the value to the vreg. However, there are no uses, which goes counter to what selection DAG isel expects. <rdar://problem/11134152> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
544b9b426f0dfa1beef6dc3640607dee3ca1160e |
|
22-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Fold "urem x, pow2" -> "and x, pow2-1". This should fix the 271% execution-time regression for nsieve-bits on the ARMv7 -O0 -g nightly tester. This may also improve compile-time on architectures that would otherwise generate a libcall for urem (e.g., ARM) or fall back to the DAG selector. rdar://10810716 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
8c5293c9556317143505c085cf428e11962e1273 |
|
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Do everything up to generating code to try to get a register for a variable. The previous code would break the debug info changing code invariant. This will regress debug info for arguments where we elide the alloca created. Fixes rdar://11066468 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c415af225d9546a66ac9f7368a973e0be25b438d |
|
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Untabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4476bae1b42bdc7d2c87c0524148d6ad9224357b |
|
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add another debugging statement here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4e27027562d6843364e0ab744f97958b6abca08d |
|
20-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Use lookUpRegForValue here instead of duplicating the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ccaea7dc0bbc75e5d4ee92fb8cc6af0f928d056f |
|
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
We actually handle AllocaInst via getRegForValue below just fine. Part of rdar://8905263 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
bb54d21495ba5ce60931bc872e3e3df67386cb97 |
|
15-Mar-2012 |
Eric Christopher <echristo@apple.com> |
Add some debugging output into fast isel as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c9c137b463b953fbf8942f655d67f6dc1a0f7965 |
|
22-Feb-2012 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Properly emit _fltused with FastISel. Refactor to share code with SDAG. Patch by Joe Groff! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
44d23825d61d530b8d562329ec8fc2d4f843bb8d |
|
22-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Make all pointers to TargetRegisterClass const since they are all pointers to static data that should not be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9b5d6b860c7264e1dd8c5b757dfb4458dccdc27e |
|
18-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Ignore the lifetime intrinsics in fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2f2d1d7ec0a0178c76c29a13ab39d3f33d9b097b |
|
04-Feb-2012 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] HandlePHINodesInSuccessorBlocks() can promite i8 and i16 types too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
efd564fbd6b38964f717bf1c34f37f441eb5cf36 |
|
31-Jan-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the now-dead llvm.eh.exception and llvm.eh.selector intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5bd83345c7ba2c15a062495a0267d1dc1d478aac |
|
13-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Remove SelectInsertValue() as fast-isel wasn't designed to handle instructions that define aggregate types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4552d3e22abbb4e6a9078b5ff9e7c59e44e29fca |
|
10-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] SelectInsertValue seems to be causing miscompiles for ARM. Disable while I investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b435aa2c1de2ff28e51b1ce881e9f10f8b51d8e3 |
|
10-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
cd462d055ffc18a526a9a1d343261d8550e99280 |
|
09-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
[fast-isel] Add support for selecting insertvalue. rdar://10530851 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ae6f2cb1fc520aa56777dab1e7603aee9429f6dd |
|
29-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
If fast-isel fails, remove dead instructions generated during the failed attempt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
aa5656c6b9161608005cf8dc85027c160a925e58 |
|
28-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
80-column. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
478b06c9801f0b75c5216ce0886ac3d630d4fc7b |
|
17-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
When fast iseling a GEP, accumulate the offset rather than emitting a series of ADDs. MaxOffs is used as a threshold to limit the size of the offset. Tradeoffs being: (1) If we can't materialize the large constant then we'll cause fast-isel to bail. (2) Too large of an offset can't be directly encoded in the ADD resulting in a MOV+ADD. Generally not a bad thing because otherwise we would have had ADD+ADD, but on Thumb this turns into a MOVS+MOVT+ADD. Working on a fix for that. (3) Conversely, too low of a threshold we'll miss opportunities to coalesce ADDs. rdar://10412592 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
053e69ad5704a8e0e5f50d8b18f8917377ffacfb |
|
16-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
Add fast-isel stats to determine who's doing all the work, the target-independent selector or the target-specific selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
22b34cce4d270f787d4c991baee596a9e3b7f836 |
|
16-Nov-2011 |
Chad Rosier <mcrosier@apple.com> |
GEPs with all zero indices are trivially coalesced by fast-isel. For example, %arrayidx135 = getelementptr inbounds [4 x [4 x [4 x [4 x i32]]]]* %M0, i32 0, i64 0 %arrayidx136 = getelementptr inbounds [4 x [4 x [4 x i32]]]* %arrayidx135, i32 0, i64 %idxprom134 Prior to this commit, the GEP instruction that defines %arrayidx136 thought that %arrayidx135 was a trivial kill. The GEP that defines %arrayidx135 doesn't generate any code and thus %M0 gets folded into the second GEP. Thus, we need to look through GEPs with all zero indices. rdar://10443319 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9e15d658c99c3f0717cb83cc2bd2aa29abdbcdbb |
|
12-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Fix a thinko that Nick noticed. The previous code actually worked as intended, but only by accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9aee335c23bec4f6d1b2cab3bca76231d7b0d556 |
|
09-Sep-2011 |
Devang Patel <dpatel@apple.com> |
Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
74af88a6661ad5185924bf39164fb4aa144d32cf |
|
19-Aug-2011 |
Ivan Krasin <krasin@chromium.org> |
FastISel: avoid function calls between the materialization of the constant and its use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
3ba292dbc2acee2d1052fb7ffe332e2164147b47 |
|
18-Jul-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity errors like the one corrected by r135261. Migrate all LLVM callers of the old constructor to the new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fc6d3a49867cd38954dc40936a88f1907252c6d2 |
|
13-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
8594d429e02c688d428036f8563f09572da3fbff |
|
24-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Handle debug info for i128 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0b4d96baecf3fe6af0fd45ba815bacf91a017f97 |
|
06-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10077: fix fast-isel of extractvalue of aggregate constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
76927d7303046058c627691bd45d6bff608f49f4 |
|
26-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and more consistent. The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts). rdar://9437928 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
482feb33b2bba677d47bab859d9e1e95d67016bd |
|
16-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make fast-isel work correctly s/uadd.with.overflow intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a4c920db7a3620f365144eac9aaad7ca23062caa |
|
16-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix silly typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2586b8f9366aed5a1efa44d3f18d095511601642 |
|
16-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Basic fast-isel of extractvalue. Not too helpful on its own, given the IR clang generates for cases like this, but it should become more useful soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d0118a2371f35faa6af97e67be69e1debc615c42 |
|
14-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a FIXME by moving the fast-isel implementation of the objectsize intrinsic from the x86 code to the generic code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d71867a8f4b1ab6ab8cc8f5b1a732184ec5bad1b |
|
05-May-2011 |
Owen Anderson <resistor@mac.com> |
Allow FastISel of three-register-operand instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b2b03fc2fa87cb5604dd8ec2e8476d051186cdb3 |
|
30-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make FastEmit_ri_ try a bit harder to succeed for supported operations; FastEmit_i can fail for non-Thumb2 ARM. Makes ARMSimplifyAddress work correctly, and reduces the number of fast-isel bailouts on non-Thumb ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
bd1253809bc1b2455793a64d2801db3d6317b08e |
|
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a silly mistake in r130338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2790ba8e5a7bb6e00fdac9997d840598fb60271c |
|
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is common. rdar://problem/9303592 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
161b887506fb79dc68fb507b72de03eaf48f467a |
|
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a61e73bda5125c28e48b52e573d115370838596b |
|
26-Apr-2011 |
Dan Gohman <gohman@apple.com> |
Fast-isel support for simple inline asms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d74ea775af55782e3b0d5b10fa7602f8822a2f72 |
|
23-Apr-2011 |
Owen Anderson <resistor@mac.com> |
Teach FastISel to deal with instructions that have two immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
832e4943598d821687cec79f512803c1ca03cff7 |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Implement support for x86 fastisel of small fixed-sized memcpys, which are generated en-mass for C++ PODs. On my c++ test file, this cuts the fast isel rejects by 10x and shrinks the generated .s file by 5% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
f051c1a29dd040b4b5ca0c5696d47a9058f87481 |
|
18-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
while we're at it, handle 'sdiv exact' of a power of 2 also, this fixes a few rejects on c++ iterator loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
090ca9108b35a60e8b97b67987d00cf47a383dba |
|
18-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix rdar://9297011 - udiv by power of two causing fast-isel rejects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
602fc0681726155942907debee1fe0b8b44ffc1b |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
1. merge fast-isel-shift-imm.ll into fast-isel-x86-64.ll 2. implement rdar://9289501 - fast isel should fold trivial multiplies to shifts 3. teach tblgen to handle shift immediates that are different sizes than the shifted operands, eliminating some code from the X86 fast isel backend. 4. Have FastISel::SelectBinaryOp use (the poorly named) FastEmit_ri_ function instead of FastEmit_ri to simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fff65b354f9895f5add84d99e0f62176f5d3f0f6 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix rdar://9289583 - fast isel should handle non-canonical commutative binops allowing us to fold the immediate into the 'and' in this case: int test1(int i) { return 8&i; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7a2bdde0a0eebcd2125055e0eacaca040f0b766c |
|
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
562b84b3aea359d1f918184e355da82bf05eb290 |
|
11-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Don't include Operator.h from InstrTypes.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2ce5bf188dfa4329eb246df6011dd1edde5a5979 |
|
11-Mar-2011 |
Owen Anderson <resistor@mac.com> |
Teach FastISel to support register-immediate-immediate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
afeaae7a940ce16e7874af31f3e5e91d8ca89e19 |
|
06-Dec-2010 |
Devang Patel <dpatel@apple.com> |
If dbg_declare() or dbg_value() is not lowered by isel then emit DEBUG message instead of creating DBG_VALUE for undefined value in reg0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
bf17cfa3f904e488e898ac2e3af706fd1a892f08 |
|
23-Nov-2010 |
Wesley Peck <peckw@wesleypeck.com> |
Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
6fe75aaaeb6b0587d402228ba291c729a13eb6d7 |
|
14-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Use frame index, if available for byval argument while lowering dbg_declare. Otherwise let getRegForValue() find register for this argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4bafda9618f9dfa9edc8da08bb3001ef2d1a9b68 |
|
10-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Add DEBUG message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
44a2c3476bd15e03f294bae1b50016851f214f8d |
|
17-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
c6e59b71f50c7c77bc448a936dba8e84d90911e8 |
|
20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
After a custom inserter, in a block which has constant instructions, update the current basic block in addition to the current insert position, so that they remain consistent. This fixes rdar://8204072. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9c3d5e41b94ff51dc78ae42397151b52d9c2b546 |
|
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Revert r108369, sorting llvm.dbg.declare information by source position, since it doesn't work for front-ends which don't emit column information (which includes llvm-gcc in its present configuration), and doesn't work for clang for K&R style variables where the variables are declared in a different order from the parameter list. Instead, make a separate pass through the instructions to collect the llvm.dbg.declare instructions in order. This ensures that the debug information for variables is emitted in this order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
163f78ea4016d594d921154d8df1c9d746fb0ea8 |
|
15-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Properly restore DebugLoc after leaving the local constant area. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2dd50e656f048d222aaaa57168688326fa52421b |
|
14-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Delete fast-isel's trivial load optimization; it breaks debugging because it can look past points where a debugger might modify user variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a10b8494a50108482302f6f077d72fbc76d776ed |
|
14-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't propagate debug locations to instructions for materializing constants, since they may not be emited near the other instructions which get the same line, and this confuses debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e7917bb207d5178dfb26066f839e4c295fd3a1eb |
|
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY for fast-isel bitconvert, but don't create cross-class copies. This doesn't change the behavior of SelectBitcast for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e797e0c8644a649d162fb339b148f5db10447d4e |
|
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY for extracting ImplicitDef'ed values from fast-isel instructions. This assumes that the registers can be copied which is probably a safe assumption. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5127f7991373d1c69e4d3241ec11913f4f44bb21 |
|
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY in FastISel everywhere it is safe and trivial. The remaining copyRegToReg calls actually check the return value (shock!), so we cannot trivially replace them with COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
0bc25f40402f48ba42fc45403f635b20d90fabb3 |
|
08-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert EXTRACT_SUBREG to COPY when emitting machine instrs. EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead. Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg(). The isMoveInstr hook will be removed later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
49dcb0f9ec865fd5474e5b552723adab2d7bf840 |
|
08-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't forward-declare registers for static allocas, which we'll prefer to materialize as local constants. This fixes the clang bootstrap abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
7fbcc98f20c062273bf16ce9832f40e5b8a205c6 |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Teach fast-isel to avoid loading a value from memory when it's already available in a register. This is pretty primitive, but it reduces the number of instructions in common testcases by 4%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
3193a689db3de8640d412ccd9482301647359a4e |
|
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Do one lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
37db6cdaea47d0637bdbe624f7b10ff8f82928ad |
|
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Generalize this to look in the regular ValueMap in addition to the LocalValueMap, to make it more flexible when fast-isel isn't proceding straight top-down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
db4971259ce94cea26e555e9ade82672a3581f5c |
|
19-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach regular and fast isel to set dead flags on unused implicit defs on calls and similar instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e368b460a206fafa0d31d5d059b1779b94f7df8c |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate unnecessary uses of getZExtValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
3bf912593301152b65accb9d9c37a95172f1df5a |
|
18-Jun-2010 |
Stuart Hastings <stuart@apple.com> |
Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
eddc114a66b4520369e0f86ab1d3132dac2449b2 |
|
25-May-2010 |
Dan Gohman <gohman@apple.com> |
Do one map lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7f0d69555caab5f5468ddf74b5840f59c4c6fd83 |
|
15-May-2010 |
Dan Gohman <gohman@apple.com> |
Fast ISel trivially coalesces away no-op casts, so check for this when setting kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e1308d86ed2402483aa9d056af531fd773e1121f |
|
13-May-2010 |
Dan Gohman <gohman@apple.com> |
An Instruction has a trivial kill only if its use is in the same basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a6cb641f48df20f6f79018569b519e5a32e897a2 |
|
12-May-2010 |
Dan Gohman <gohman@apple.com> |
Add initial kill flag support to FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
02f0dbd97a9bc01528aa12c2f260d928683ab411 |
|
08-May-2010 |
Devang Patel <dpatel@apple.com> |
Verify variable directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fb95f89e8ebd0b71408472e2544e2b8d6d4738e5 |
|
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Transfer debug location information from PHI nodes to resulting lowered copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
34dcc6fadca0a1117cdbd0e9b35c991a55b6e556 |
|
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it doesn't have to guess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
97c94b8fc630b55e17a37481910810639e28d086 |
|
06-May-2010 |
Dan Gohman <gohman@apple.com> |
In bottom-up mode, defer the materialization of local constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a7a0ed79012ea36f838239cf1d04959711aec2a9 |
|
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add an "IsBottomUp" member function to FastISel, which will be used to support a new bottom-up mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1fdc614bee2a324fcc210d1e46d9b6fca3ca324b |
|
04-May-2010 |
Dan Gohman <gohman@apple.com> |
Factor out FastISel's code for materializing constants and other values in registers into a separate function to de-couple it from the top-down-specific logic in getRegForValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
54fc4d6a48b32772b1a114a43e20de521257899b |
|
28-Apr-2010 |
Devang Patel <dpatel@apple.com> |
While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7dc7840850eb4a61da80c846be85308734a47bf5 |
|
25-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Add comment re byval args. Doesn't actually work this way yet. xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.cpp
|
3b172f1c018a093d0dae3105324d782103fcda6d |
|
22-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
32acbc1e50defdb7e27a4e8274f78988cf302c14 |
|
14-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Generalize this code to handle Instructions in addition to ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4183e31978146ea529a87a2fc47b96aeb6cbe000 |
|
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
343b42e428079363ab09828734b2debfd7dbdc9e |
|
07-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Move printing of target-indepedent DEBUG_VALUE comments into AsmPrinter. Target-dependent form is still generated by FastISel and still handled in X86 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
870cfcf9a6189b65a8ee805b93a2c737c0183e62 |
|
31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add new apis for getting/setting !dbg metadata on instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0193c0994bddb24225e47f91c19b9e75f8aebd44 |
|
11-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Remove dead include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
45df7616528e3d101c5b2938bd4d865321205d33 |
|
26-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Move dbg_value generation to target-independent FastISel, as X86 is currently the only FastISel target. Per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
10fedd21d3d5e9527b13e38addd7002da2c1dc61 |
|
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Fix comments to reflect renaming elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
dc9185657593b5c1db86cb95a04a68fc09194993 |
|
06-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
After Victor's latest commits I am seeing null addresses in dbg.declare; ignore this for the moment to prevent things from breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5ed17ae92a9239c2ff7d3ba494bf96651598ee7a |
|
26-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Generate DEBUG_VALUE comments on x86. The (limited) dbg.declare's we currently generate go through both register allocators without perturbing the results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
f082d7abe1cbba4608b3d79c2e9d16be0f42d1bc |
|
19-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 93811 per request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1b346b7f8fe5913c253106e49cb4c848fac953d5 |
|
19-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Enable code to emit dbg.declare as DEBUG_VALUE comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
3a32865d58f015e7058444eab7085195c34da95a |
|
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5f03238d629c32bb0bab78d112a42293838558e9 |
|
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be auto-upgraded git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
283ba2fbb4a40d5f7615aba070f2f7ec161d19ac |
|
15-Jan-2010 |
Victor Hernandez <vhernandez@apple.com> |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5c9cf19d1e7d044e786f03331bc3f004966a69d2 |
|
12-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7c3ecb6838ef7a2ca306c0f3cd68022f0855ae71 |
|
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
614d2ad0afaaee874684c3945afda659d587b7e6 |
|
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Delete renaming use of dead dbg intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
bf0ca2b477e761e2c81f6c36d6c7bec055933b15 |
|
29-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of unneeded functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.cpp
|
86888887872737f614a66e3e25b896248c29c6c2 |
|
28-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
66336edf823f8d64d77dc5ab2bbefc21ef82f6ec |
|
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Move some more code out of SelectionDAGBuild.cpp and into FunctionLoweringInfo.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
70d75ca3107ce05bc30ad3511aa669b9fab5eb90 |
|
12-Nov-2009 |
Devang Patel <dpatel@apple.com> |
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
b01bbdcc1af27bd90b552bb1b62b48916e0d4be3 |
|
14-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
I don't see any point in having both eh.selector.i32 and eh.selector.i64, so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1619dc3b9ee2573c481591764c2d26d5ff16b483 |
|
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
s/DebugLoc.CompileUnit/DebugLoc.Scope/g s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ac1ceb3dd33cb79ecb0dbd64b6abafa7ce067c5f |
|
10-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location. While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
60b35bd8ecb2c3358b80d8441873cfffa0d27851 |
|
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to handle debug info attached to an instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
75549f4444cbb14e73c8f10ab90ec36c60413e8e |
|
01-Oct-2009 |
Devang Patel <dpatel@apple.com> |
If location info is attached with an instruction then keep track of alloca slots used by a variable. This info will be used by AsmPrinter to emit debug info for variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4a215a13c3035a8818254b61267be77def4a2a37 |
|
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Make fast-isel try ISD::FNEG before resorting to bitcasts and xors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5e5abb77fe9eeb92a55f119fdb721bca4508094a |
|
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r81171 with a fix: don't try to use i64 when it isn't legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2a16e6b22c558f9ba0b25096dfe0697488e51c8e |
|
10-Sep-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revert r81171 which was causing pr4927. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fd06aa7c076f397b307ddd638a2666f4090ee2b1 |
|
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix a thinko: When lowering fneg with xor, bitcast the operands from floating-point to integer first, and bitcast the result back to floating-point. Previously, this test was passing by falling back to SelectionDAG lowering. The resulting code isn't as nice, but it's correct and CodeGen now stays on the fast path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
3d45a853db014fdddcdb79424e663dfed5eccbc7 |
|
04-Sep-2009 |
Dan Gohman <gohman@apple.com> |
LLVM currently represents floating-point negation as -0.0 - x. Fix FastISel to recognize this pattern and emit a floating-point negation using xor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e4b275610a7a05b7ee4c0378a906a6330e4c4ab0 |
|
29-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 79977. Use MDNodes to encode debug info in llvm IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
824598883513789516a919651f4b35e7a638ec5c |
|
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2a610c7387664bc557a35ce3bb4c0d4df56e4755 |
|
25-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
24f20e083280d979e8fa1bc88959ae9e8339ee99 |
|
22-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Record variable debug info at ISel time directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
23b9b19b1a5a00faa9fce0788155c7dbfd00bfb1 |
|
12-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
766b5efd99c01e26f00f22d81b57d1385b3d2ab0 |
|
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Fix warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.cpp
|
77547befdc430633aaedf4130ddf17d953ed552e |
|
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a7235ea7245028a0723e8ab7fd011386b3900777 |
|
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are metadata related, which I'm waiting on to avoid conflicting with Devang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
eed707b1e6097aac2bb6b3d47271f6300ace7f2e |
|
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
|
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
001dbfebcbbded8c8e74b19e838b50da2b6c6fb5 |
|
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in our current context-passing stuff, which is also fixed here git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0a5372ed3e8cda10d724feda3c1a1c998db05ca0 |
|
13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7e1e31f467d87c834d8baf673929865907901313 |
|
03-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify debug info intrisinc lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
6d8f1263f40e6b8fc2cd5cce3dfd9ce99fe09226 |
|
02-Jul-2009 |
Devang Patel <dpatel@apple.com> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
30d7b650aa443b78cfa1e918bb0d5eaf288b0a2f |
|
01-Jul-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.declare is always used for local variable's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1e86a66b00b94adc4ad6977ef6b47c516ac62cec |
|
20-Jun-2009 |
Devang Patel <dpatel@apple.com> |
mv CodeGen/DebugLoc.h Support/DebugLoc.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
11a407f43fc0fb21df3156350175eaeeffaf7085 |
|
15-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Gracefully handle imbalanced inline function begin and end markers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ae3a0be92e33bc716722aa600983fc1535acb122 |
|
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Split the Add, Sub, and Mul instruction opcodes into separate integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b0f1e1780c736c62fb99e5824825d2a60a53b53b |
|
22-May-2009 |
Duncan Sands <baldrick@free.fr> |
Add a new codegen pass that normalizes dwarf exception handling code in preparation for code generation. The main thing it does is handle the case when eh.exception calls (and, in a future patch, eh.selector calls) are far away from landing pads. Right now in practice you only find eh.exception calls close to landing pads: either in a landing pad (the common case) or in a landing pad successor, due to loop passes shifting them about. However future exception handling improvements will result in calls far from landing pads: (1) Inlining of rewinds. Consider the following case: In function @f: ... invoke @g to label %normal unwind label %unwinds ... unwinds: %ex = call i8* @llvm.eh.exception() ... In function @g: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... "rethrow exception" Now inline @g into @f. Currently this is turned into: In function @f: ... invoke @something to label %continue unwind label %handler ... handler: %ex = call i8* @llvm.eh.exception() ... perform cleanups ... invoke "rethrow exception" to label %normal unwind label %unwinds unwinds: %ex = call i8* @llvm.eh.exception() ... However we would like to simplify invoke of "rethrow exception" into a branch to the %unwinds label. Then %unwinds is no longer a landing pad, and the eh.exception call there is then far away from any landing pads. (2) Using the unwind instruction for cleanups. It would be nice to have codegen handle the following case: invoke @something to label %continue unwind label %run_cleanups ... handler: ... perform cleanups ... unwind This requires turning "unwind" into a library call, which necessarily takes a pointer to the exception as an argument (this patch also does this unwind lowering). But that means you are using eh.exception again far from a landing pad. (3) Bugpoint simplifications. When bugpoint is simplifying exception handling code it often generates eh.exception calls far from a landing pad, which then causes codegen to assert. Bugpoint then latches on to this assertion and loses sight of the original problem. Note that it is currently rare for this pass to actually do anything. And in fact it normally shouldn't do anything at all given the code coming out of llvm-gcc! But it does fire a few times in the testsuite. As far as I can see this is almost always due to the LoopStrengthReduce codegen pass introducing pointless loop preheader blocks which are landing pads and only contain a branch to another block. This other block contains an eh.exception call. So probably by tweaking LoopStrengthReduce a bit this can be avoided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
df7d5d317096c342ee1c459139914965008fbcd7 |
|
21-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r72191. It was causing an assert during llvm-gcc bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a3437647dc6996499db4823c31242184c93e6e2e |
|
21-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce DebugScope which gets embedded into the machine instructions' DebugLoc. DebugScope refers to a debug region, function or block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
777d2306b36816a53bc1ae1244c0dc7d998ae691 |
|
09-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename PaddedSize to AllocSize, in the hope that this will make it more obvious what it represents, and stop it being confused with the StoreSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9a38e3e3991ea443e555d8060f91202a786acdd4 |
|
07-May-2009 |
Dan Gohman <gohman@apple.com> |
Revert 71165. It did more than just revert 71158 and it introduced several regressions. The problem due to 71158 is now fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5b8479c38532a28d86dea8ded09a30ff68f26912 |
|
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71158. It was causing a failure during a full bootstrap: checking for bcopy... no checking for getc_unlocked... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decUtility.c:360: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decUtility.o] Error 1 make[4]: *** Waiting for unfinished jobs.... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decNumber.c:5591: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decNumber.o] Error 1 make[3]: *** [all-stage2-libdecnumber] Error 2 make[3]: *** Waiting for unfinished jobs.... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
116b27444a206a2831d88fea5ce34ced8184ceca |
|
07-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make DwarfWriter::RecordInlinedFnStart more like the other DwarfWriter's methods: -Have it return a label ID -Remove the unused Instruction parameter No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fe095f39e7009c51d1c86769792ccbcad8cdd2ec |
|
04-May-2009 |
Mike Stump <mrs@apple.com> |
Restore minor deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
77eaa6880b8209acc05de733ebaba5d146c321a0 |
|
03-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
-Move the DwarfWriter::ValidDebugInfo check to a static DIDescriptor::ValidDebugInfo -Create DebugLocs without the need to have a DwarfWriter around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a26eae64ddf607549f9e47046d46ea5b9ec648b4 |
|
01-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make DebugLoc independent of DwarfWriter. -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
02f8c410148ba3b6009ed67df41e2c97c1c07c3a |
|
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Do not treat beginning of inlined scope as beginning of normal function scope if the location info is missing. Insetad of doing ... if (inlined_subroutine && known_location) DW_TAG_inline_subroutine else DW_TAG_subprogram do if (inlined_subroutine) { if (known_location) DW_TAG_inline_subroutine } else { DW_TAG_subprogram } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
906caf2ae45455a12696bb950429da28d7d63422 |
|
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Record line number at the beginning of a func.start. This line was accidently lost yesterday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
682e0e6a72af42f31e6fcf329c7bb5cfaff7459d |
|
16-Apr-2009 |
Devang Patel <dpatel@apple.com> |
If location where the function was inlined is not know then do not emit debug info describing inlinied region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
8818b8f4437a56fc8f75a134f015c3b807e61f10 |
|
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Add DISubprogram is not null check. This fixes test/CodeGen//2009-01-21-invalid-debug-info.m test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1be3eccecbd2fa50ed9008ffee01f6351df5d8f7 |
|
15-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
48c7fa21a3b5e491bdf0ffc41fe7aa9687450c5f |
|
13-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Right now, Debugging information to encode scopes (DW_TAG_lexical_block) relies on DBG_LABEL. Unfortunately this intefers with the quality of optimized code. This patch updates dwarf writer to encode scoping information in DWARF only in FastISel mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0f7fef3872a37d09c806f52f1d03d74ebc73c171 |
|
13-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 68847. Now debug_inlined section is covered by TAI->doesDwarfUsesInlineInfoSection(), which is false by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
36e3946ac2f30a0bda66538ef2b974b1c8fbdc97 |
|
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
make UpdateValueMap handle the possiblity that we could be copying into the right register, avoiding a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c5040ab6065d5c569a1af0848b6e672b22b174b7 |
|
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
optimize FastISel::UpdateValueMap to avoid duplicate map lookups, and make it return the assigned register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c6fa3ff0bddca92e443ef9ff454d2a74cac867bd |
|
11-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Revert r68847. It breaks the build on non-Darwin targets, with this message from the assembler: Error: unknown pseudo-op: `.debug_inlined' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2057532679fc1045cfeb38b477ac9e749e6b1dd8 |
|
11-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Keep track of inlined functions and their locations. This information is collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.) Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
923838533a005154c3a30271aa3186a633102a9c |
|
10-Apr-2009 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b396992f68711e473d0cae2ac9c04569f20147b4 |
|
09-Apr-2009 |
Devang Patel <dpatel@apple.com> |
llvm.dbg.func_start also defines beginning of function scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4fd552880c9f42f117bd79929ea0179f99bd6bb7 |
|
07-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Don't attempt to handle aggregate argument values in FastISel; let SelectionDAG do those. This fixes PR3955. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
474d3b3f40e117a66946e9fb9d2016b4c05caef0 |
|
14-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Improve FastISel's handling of truncates to i1, and implement ptrtoint and inttoptr in X86FastISel. These casts aren't always handled in the generic FastISel code because X86 sometimes needs custom code to do truncation and zero-extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
14ea1ec2324cb595f2e035bbf54ddcd483f17c11 |
|
13-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Fix FastISel's assumption that i1 values are always zero-extended by inserting explicit zero extensions where necessary. Included is a testcase where SelectionDAG produces a virtual register holding an i1 value which FastISel previously mistakenly assumed to be zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0582ae99ba75a556d6ff63b254da327d32ba036f |
|
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Oops...I committed too much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c7a09ab3110b9462ad9646cb60c22c8527491ad9 |
|
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily XFAIL this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ccbdc7ab82792ac5d7863ef086f11fb010d88073 |
|
09-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Pass in a std::string when getting the names of debugging things. This cuts down on the number of times a std::string is created and copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e3d423244ae288b2c9021dbb3cd7fb973d1cfc31 |
|
25-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior. This is a very minor compile time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
57f0db833dc30404f1f5d28b23df326e520698ec |
|
24-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Overhaul my earlier submission due to feedback. It's a large patch, but most of them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
92c1e126473dfa93eeb4c9a124af4fedb40f0d5b |
|
13-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert this. It was breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
54fc7d67146b2b95ae2d1c93ed59008d4338d8c8 |
|
13-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Turn off the old way of handling debug information in the code generator. Use the new way, where all of the information is passed on SDNodes and machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
14c4c1ec0eca7f2f91957571288b4d918ed8c394 |
|
12-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
make fast isel fall back to selectiondags for VLA llvm.declare intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9bc96a57206cbebaa9b0ba9979f949eb10c1592c |
|
03-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Create DebugLoc information in FastISel. Several temporary methods were created. Specifically, those BuildMIs which use "DebugLoc::getUnknownLoc()". I'll remove them soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
536ab130ec95cbb7bf30530251dafa7dfecc8471 |
|
22-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b79b5359fbe44bc82bedff2c081ed1db787f8d49 |
|
20-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Verify debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
cf3a4487c0627d15d03fb6fedc10b58f6e2c9ebe |
|
16-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Validate dbg_* intrinsics before lowering them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
ceb4d1aecb9deffe59b3dcdc9a783ffde8477be9 |
|
12-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getABITypeSize to getTypePaddedSize, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c8a1a3c426209e9c7b35e279e1578a89edc40af6 |
|
08-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for sign-extending/truncating gep indices and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
24ac408ce891321d1a5d62beaf3487efce6f2b22 |
|
24-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate some unused variable compile time warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e75808cf3d92d14c5659a15d0d17bd21a54fd8cc |
|
06-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Emit label for llvm.dbg.func.start of the inlined function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
44d2a983b76a2a923e34f3162c960443425cb296 |
|
13-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
calls can be supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
23a98551ab65eeb8fe5019df8b7db4891582a4bd |
|
10-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Add a "loses information" return value to APFloat::convert and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
1e9e8c3bd5ac018296bddb21a2acb8c643303b39 |
|
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Avoid emitting redundant materializations of integer constants for things like null pointers, which at this level aren't different from regular integer constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
91b6f97ce4273fee5516692e3f27cd76d67986fc |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Implement fast-isel support for zero-extending from i1. It turns out that this is a fairly common operation, and it's easy enough to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d98d6203e429b2d7208b6687931e9079e85e95ec |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Optimize conditional branches in X86FastISel. This replaces sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5ec9efd61bc4214c787287409498e8b78f28c922 |
|
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the primary fast-isel top-level comments to FastISel.cpp, where they'll be a little more visible. Also, update and reword them a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5dd9c2e9aea7294c184609aff7f2fe82eaea4eb0 |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Support for i1 XOR in FastISel. It is actually safe because i1 operands are assumed to already by zero-extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
dceffe66b9e73ce372ea11c0fc6975504eb8c31d |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a recent fast-isel coverage regression - don't bail out before giving the target a chance to materialize constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
2ff7fd146159d97abe94391a33b4385abb06bbb0 |
|
20-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Refactor X86SelectConstAddr, folding it into X86SelectAddress. This results in better code for globals. Also, unbreak the local CSE for GlobalValue stub loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
821164875706dd28e48c6cc3cea5c8ffa6e658d1 |
|
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for i1 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
0d95267e499082b658eaeaca85b7c5a226753f69 |
|
09-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Clean this up, based on Evan's suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
baf37cd5568a7449b6b3822d2dc19582f0270877 |
|
09-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Check for type legality before materializing integer constants in fast isel. With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
59fbc80f6b3b5c71dfb84149f589625f7ed510e3 |
|
09-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a constant lowering bug. Now we can do load and store instructions with funky getelementptr embedded in the address operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
5960e4eb68be6b3bca6369f6a95d7de5ed8a9ead |
|
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add fast isel physical register definition support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
f09917847bb082829feba34d1818eb97764839d9 |
|
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
6e6074508c2f781c3e52dfe0e301cb1c7f395a91 |
|
06-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Revert r55859. This is breaking the build in the abscence of its companion commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
638c6830c6d0d6871065d2b00178ee4aa7d4d044 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for AND and OR with type i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
40b189e4e257924d90aaf63bf2e12bc7bbca961a |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
087c8507e592bbbede1746f07bd44b28559e3684 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel support for unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
95267a1e671efc3c14e916b6978bbb15973b4cdc |
|
05-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for selecting constant materializations that require constant pool loads on X86 in fast isel. This isn't actually used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
104e4ce1629ea84736691bd1ee7867bdf90e8a2e |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Do trivial local CSE for constants and other non-Instruction values in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
d5d81a457b5ff758b3fcc527af38827490bc68a5 |
|
03-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Oops, I accidentally broke the fallback case with my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
99aaf108cdf4ac5b972757abbf4e0a3d547804b1 |
|
03-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix an issue where we were reusing materializations of constants in blocks not dominated by the materialization. This is the simple fix, materializing the constant before every use. It might be better to either track domination of uses or to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
36fd941fc029c6ea50ed08d26a2bfe4932b9789c |
|
02-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
cc54e76cc67bbc9badc024ab29053602769bd255 |
|
30-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix an issue where a use might be selected before a def, and then we didn't respect the pre-chosen vreg assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen vreg. Other solutions might be preferable, such as: 1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently. 2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
205d92589bc8c59d4bba9ddf89e0eb3c4d548cda |
|
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Implement null and undef values for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
c0bb68b98267c75168e6596d20610a8a8b3c0635 |
|
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Hook up support for fast-isel of trunc instructions, using the newly working support for EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
40a468f24909792f000e3ccc1dda7a27b9c34b69 |
|
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
FastEmitInst_extractsubreg doesn't need to be passed the register class. It can get it from MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
8970f00deff00ffce1f35cf00883357e1582daa1 |
|
28-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a318dabc0edbcc7a2b54d99b026a093361ec14fc |
|
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel's bitcast code for the case where getRegForValue fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
6336b70541204d1a8377ec1f33748a7260e0a31d |
|
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use TargetLowering to get the types in fast isel, which handles pointer types correctly for our purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
151ed61a2f9c3482d35a54d502e7cd147f22a21b |
|
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Don't check TLI.getOperationAction. The FastISel way is to just try to do the action and let the tablegen-generated code determine if there is target-support for an operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
ad368ac2b5f303050e9aaa357e2b806fae38f81b |
|
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a new FastISel method, getRegForValue, which takes care of the details of materializing constants and other values into registers, and make use of it in several places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
96a9999d79345fa7bc7e2f2a3f28edef4c69e6b5 |
|
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a comment about the current floating-point constant code in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
10df0fa73e396bbc93a8940e8b53827390c54d10 |
|
27-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Basic FastISel support for floating-point constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
96c5ea878c96ce123c2c84bafcfb70032b56c9ab |
|
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Fix handling of inttoptr and ptrtoint when unhandled operands are present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
9d5b41624003daf259b33fc953aa471049700353 |
|
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of inttoptr and ptrtoint in the cases where truncation is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d0533c9998d3baf41848ba559a9b2f2c65296d14 |
|
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Factor out a large amoutn of the cast handling code in fast isel into helper methods. This simultaneously makes the code simpler and adds support for sext as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
97e2568f46f66e67cfa6a61403bddaeba38a252f |
|
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of zext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
13269335a55395f2914c81ddb2401524abb4fa5e |
|
27-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fptosi of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
763d89343be210eb62a13318ca0cc9321ce46bfb |
|
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Refactor the bitcast code into its own function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
80bc6e2243b7ae99da42bf2e61df4ebccf8d8821 |
|
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make FastISel use the correct argument type when casting GEP indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b71fea248fd7cf9ab2c5737997a3dc5682948dc4 |
|
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Don't select binary instructions with illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a843b8d391de28ca0f532b22ab3e791e1e09c47b |
|
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of sitofp, and remove some unnecessary and imprecise legality checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
77a218765ac85b2e0c6ce01bf8a7b07dfe80bead |
|
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel of bitcasts, allowing it to support the full range of conversions people might ask for in a correct manner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
940f83e772ca2007d62faffc83094bd7e8da6401 |
|
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy requested was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
46aa2f5aab3d39e9cba840ecd8068a6531f8f8a9 |
|
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of non-constant fptosi instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
0f84e4e31009eecf2dfcbe6113b65d0919f30254 |
|
26-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return type down. This is not currently used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b41aec54767a825ac54c8822e787700bb08a3460 |
|
26-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d894f1d274515db527962b6db2d9983827fdcbd6 |
|
25-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Expand bitcast support in fast isel to support bitcasts of non-constant values by emitting reg-reg copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
6d0c25ec3a7ca822e68f73a4481eee43eb5c9485 |
|
25-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add support for fast isel of (integer) immediate materialization pattens, and use them to support bitcast of constants in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.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/FastISel.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/FastISel.cpp
|
5ed3cbb753ac3cd1967d6e2d37b6985655607559 |
|
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix the InsertBranch call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
3b7753be2e899cf3a79835a8ff810e869035c87b |
|
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for PHINodes. Machine PHI nodes are not yet updated properly, but that's a separate task. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
22bb31103de3337f0bb74c7bee16d1817d4dca14 |
|
22-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the predicate check code from DAGISelEmitter.cpp and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
f93cf79505f07cb97597fbc5955462ad7670ca5c |
|
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Have FastISel skip the multiply by 1 for getelementptr on i8*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
7a0e6593d03bd2dd21c3ac7dcf189f1da86b16da |
|
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
MVT::getMVT uses iPTR for pointer types, while we need the actual intptr_t type in this case. FastISel can now select simple getelementptr instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
d5fe57d2f980c6bd1a61450f99c254a76d0f1683 |
|
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Basic fast-isel support for instructions with constant int operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
2076aa800e78a2e196eac47cc8413a074a761d8d |
|
21-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Type of first GEP operand is always the same as the target pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
fd903944de8ddcbe88902fa1eca9366eb9641201 |
|
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
f990b571c5c4828206b4e14ae7f95d36739b4336 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Simplify the BuildMI calls even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.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/FastISel.cpp
|
cb34cd7b5e4de914c1177a683f9cbb146ad50634 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make more use of the BuildMI API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
4cbe0662abb2cd6025eff51e19574a48f1a83b97 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Minor code reorganization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
77ad79689d755c49146f534107421cb3d9703fed |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Minor whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b7864a9e23be526f4f8cde529a57c8943c61c0c7 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e6798b757acb3a2077c2498e9913fff2f5e4325c |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to recognize that the last block in the function does not have a fall-through successor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
a7f2dff98e68ed8b2ac32f953768c04f26b52bea |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix FastISel to recognize unhandled operands, such as constants that aren't available as virtual registers (for now). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
8014e865800cc911697a4c0c42f077df9fcc9805 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for floating-point operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
bdedd4477331b3b0d28d74658baf05f675f2d195 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add FastISel support for several more binary operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
6f2766d59744bb3d48867f3151643eac7111e773 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Support unconditional fall-through branches in FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
8133a52eb5e69078c184eb2339d60d4c82e2a363 |
|
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use the BuildMI overload that sets up a destination register instead of the one that doesn't and then adding it manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
32155acb8af11fbe21553ef4056c555dcc4a0b99 |
|
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Handle the case where target-specific fastisel code doesn't have a desired opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
e285a74f7cf9dd3ccf4fe758576cf83301f8a43e |
|
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Make FastISel's constructor protected, and give it a destructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|
b0cf29c5cfff797284b3660dc233e135feb65d9a |
|
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Initial checkin of the new "fast" instruction selection support. See the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
|