faa1159a6915992d7f035ce06caf952fd4a4e96a |
|
30-Aug-2012 |
Michael Liao <michael.liao@intel.com> |
Fix PR13727 - The root cause is that target constant materialization in X86 fast-isel creates a PC-rel addressing which may overflow 32-bit range in non-Small code model if .rodata section is allocated too far away from code segment in MCJIT, which uses Large code model so far. - Follow the similar logic to fix non-Small code model in fast-isel by skipping non-Small code model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f4cfc4423cd48fd673e1de17aafe4db21e52f876 |
|
11-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Tidy up indentation. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
dca72541d55fce71feffcb5c5a7e3ad573f7d55a |
|
11-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix a cast that was casting away 'const' unnecessarily git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
c338fe082860989d89b51520042a5f447339eb8c |
|
25-Jul-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix typos. Thanks to Matt Beaumont-Gay for noticing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1cee71099c0477c6bf0e8ff76a55b8873ce146b4 |
|
25-Jul-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
When a return struct pointer is passed in registers, the called has nothing to pop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
742f2c9a43af3bae65922d2679de8835a6d4f302 |
|
25-Jul-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Factor a long list of conditions into a predicate function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c8e41c591741b3da1077f7000274ad040bef8002 |
|
23-Jul-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo (the the => the) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
56cb2298663017eb77aa4f4dda8db7ecd1b58173 |
|
19-Jul-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
36ec0caa0ba0378d0858e7baf5bd49a6161ccedc |
|
11-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
[x86 fast-isel] Per discussion with Eric, add all cases to switch with verbose comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ae51b30c43767aa0e7ec1a86ff8dec42642153c1 |
|
11-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
[x86 fast-isel] Rather then call llvm_unreachable() have fast-isel fall back to Selection DAG isel. Patch by Andrew Kaylor <andrew.kaylor@intel.com>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
85dccf18ea0e0b7258d1c5f186b616e022dbebf1 |
|
05-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make X86 call and return instructions non-variadic. Function argument and return value registers aren't part of the encoding, so they should be implicit operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
2db0e9ebb600a2e6b8f651f66a1ef50e0d3c3c6b |
|
25-May-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify code for calling a function where CanLowerReturn fails, fixing a small bug in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e1093e5503060b3031980dc14a141c3236108c50 |
|
11-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ddc693bd220bbabb6eadcb8507c9fe2edaf49ffb |
|
30-Apr-2012 |
Derek Schuff <dschuff@google.com> |
Fix fastcc structure return with fast-isel on x86-32 On x86-32, structure return via sret lets the callee pop the hidden pointer argument off the stack, which the caller then re-pushes. However if the calling convention is fastcc, then a register is used instead, and the caller should not adjust the stack. This is implemented with a check of IsTailCallConvention X86TargetLowering::LowerCall but is now checked properly in X86FastISel::DoSelectCall. (this time, actually commit what was reviewed!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f3db6b855e9c6b7d5d6a0a1fa52f5391921fa9ba |
|
28-Apr-2012 |
Derek Schuff <dschuff@google.com> |
Revert r155745 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9dc28b072279d238ee3568974c2c10debef05df9 |
|
28-Apr-2012 |
Derek Schuff <dschuff@google.com> |
Fix fastcc structure return with fast-isel on x86-32 On x86-32, structure return via sret lets the callee pop the hidden pointer argument off the stack, which the caller then re-pushes. However if the calling convention is fastcc, then a register is used instead, and the caller should not adjust the stack. This is implemented with a check of IsTailCallConvention X86TargetLowering::LowerCall but is now checked properly in X86FastISel::DoSelectCall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c909950c384e8234a7b3c5a76b7f79e3f7012ceb |
|
20-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert some uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c89c744b69cecac576317a98322fd295e36e9886 |
|
27-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove unnecessary llvm:: qualifications git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c5eaae4e9bc75b203b3a9922b480729bc4f340e2 |
|
11-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert more static tables of registers used by calling convention to uint16_t to reduce space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
527a08b253795cf09de41c289c9dc071f00b1d4a |
|
16-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the same CALL instructions for Windows as for everything else. The different calling conventions and call-preserved registers are represented with regmask operands that are added dynamically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8bcde2aa66415ba2e63b22d2a3c1750bfb25b550 |
|
16-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Enable register mask operands for x86 calls. Call instructions no longer have a list of 43 call-clobbered registers. Instead, they get a single register mask operand with a bit vector of call-preserved registers. This saves a lot of memory, 42 x 32 bytes = 1344 bytes per call instruction, and it speeds up building call instructions because those 43 imp-def operands no longer need to be added to use-def lists. (And removed and shifted and re-added for every explicit call operand). Passes like LiveVariables, LiveIntervals, RAGreedy, PEI, and BranchFolding are significantly faster because they can deal with call clobbers in bulk. Overall, clang -O2 is between 0% and 8% faster, uniformly distributed depending on call density in the compiled code. Debug builds using clang -O0 are 0% - 3% faster. I have verified that this patch doesn't change the assembly generated for the LLVM nightly test suite when building with -disable-copyprop and -disable-branch-fold. Branch folding behaves slightly differently in a few cases because call instructions have different hash values now. Copy propagation flushes its data structures when it crosses a register mask operand. This causes it to leave a few dead copies behind, on the order of 20 instruction across the entire nightly test suite, including SPEC. Fixing this properly would require the pass to use different data structures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
15b4497333430fbc3e20e5fb7718d4e0d838168b |
|
15-Feb-2012 |
Chad Rosier <mcrosier@apple.com> |
Use a temporary variable, rather then a series of redundant calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9a2478ac1a9aafcd5e89808868e170cfdfefcdc1 |
|
20-Jan-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Support MSVC x86-32 sret convention. PR11688. Patch by Joe Groff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1accb7ed98d823c291a4d5df172d0538451aba9e |
|
10-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove hasXMM/hasXMMInt functions. Move callers to hasSSE1/hasSSE2. This is the final piece to remove the AVX hack that disabled SSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
6202e45d53d49e0f973a8d3b362941411b7604b5 |
|
09-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Change some places that were checking for AVX OR SSE1/2 to use hasXMM/hasXMMInt instead. Also fix one place that checked SSE3, but accidentally excluded AVX to use hasSSE3orAVX. This is a step towards removing the AVX hack from the X86Subtarget.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 |
|
02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0edd83bfff5b29a6d08718a0abc13aa7197c372d |
|
29-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make X86::FsFLD0SS / FsFLD0SD real pseudo-instructions. Like V_SET0, these instructions are expanded by ExpandPostRA to xorps / vxorps so they can participate in execution domain swizzling. This also makes the AVX variants redundant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e4824714026a528fe4cb08ad73e048066980eda6 |
|
19-Oct-2011 |
Lang Hames <lhames@gmail.com> |
Teach fast isel about vector stores, and make DoSelectCall return false when it fails to emit a store. This fixes <rdar://problem/10215997>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1f9c6860bfa3b2f23c1d385fc37e4ebc93bc4645 |
|
12-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix indent in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
a6176adc8aad5d37268f40e49ae58c0eae2323c2 |
|
23-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR10991: make fast-isel correctly check whether accessing a global through an alias involves thread-local storage. (I'm not entirely sure how this is supposed to work, but this patch makes fast-isel consistent with the normal isel path.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
645b8be38a71f1a5d2d87ba4a649b11ad7875744 |
|
03-Sep-2011 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Teach X86FastISel to use AVX versions of instructions when possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4136d23c4805c5403a3521bf03fbfeee75b9216b |
|
03-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't fast-isel for atomic load/store; some cases require extra handling missing from fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
3207c9a44093156c3906b62cd9cb74726751b7b4 |
|
02-Aug-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Bail from FastISel when we encounter a volatile memset intrinsic. Patch by Ivan Krasin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
aed890bee04cce1896a4230cd493774c9700f545 |
|
01-Aug-2011 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Teach PreprocessISelDAG to be aware of vector types and to not process them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
098c7ac7c8bbc519a4ef4ab242140be459f0dae2 |
|
01-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a problem with fast-isel return values introduced in r134018. We would put the return value from long double functions in the wrong register. This fixes gcc.c-torture/execute/conversion.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d5b03f252c0db6b49a242abab63d7c5a260fceae |
|
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Move CallFrameSetupOpcode and CallFrameDestroyOpcode to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
9bbe4d6c004f25bc491e2583cce7bc91891f68c7 |
|
28-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clean up the handling of the x87 fp stack to make it more robust. Drop the FpMov instructions, use plain COPY instead. Drop the FpSET/GET instruction for accessing fixed stack positions. Instead use normal COPY to/from ST registers around inline assembly, and provide a single new FpPOP_RETVAL instruction that can access the return value(s) from a call. This is still necessary since you cannot tell from the CALL instruction alone if it returns anything on the FP stack. Teach fast isel to use this. This provides a much more robust way of handling fixed stack registers - we can tolerate arbitrary FP stack instructions inserted around calls and inline assembly. Live range splitting could sometimes break x87 code by inserting spill code in unfortunate places. As a bonus we handle floating point inline assembly correctly now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ef41ff618f2537539b538e6c7bf471c753391f92 |
|
23-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
Remove TargetOptions.h dependency from X86Subtarget. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8a37aba693bcc85b33c12d9c67322ef5f674c9a6 |
|
11-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make sure to pass OpFlags into MachineInstrBuilder::addExternalSymbol; the memcpy/memset symbol doesn't get marked up correctly in PIC modes otherwise. Should fix llvm-x86_64-linux-checks buildbot. Followup to r132864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
25255cbe0000abd64194e9e34098243cd689fd47 |
|
11-Jun-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add full x86 fast-isel support for memcpy and memset. rdar://9431466 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
471e4224809f51652c71f319532697a879a75a0d |
|
09-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Add a parameter to CCState so that it can access the MachineFunction. No functional change. Part of PR6965 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
c088345f1377a36c35c037be63830d0e6892f904 |
|
21-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add fast-isel support for byval calls on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
dc51575a5f813164e96c7c1ab41aaf33585573f6 |
|
20-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add fast-isel support for zeroext and signext ret instructions on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
22486c9abacf32c47bf1707bee45f677d2b50358 |
|
19-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert unintentional commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
107ffd58f70651cc928416f6aaf267accc992c23 |
|
19-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
More instcombine simplifications towards better debug locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
19515b4e52c16723097c5b9c5f5fe65540db0187 |
|
17-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add x86 fast-isel for calls returning first-class aggregates. rdar://9435872. This is r131438 with a couple small fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c93943b6fef4d84a9934cf23f8b14d3a8952f26f |
|
17-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Back out r131444 and r131438; they're breaking nightly tests. I'll look into it more tomorrow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
cdc9a20561ff6e2dc9cf7ee6aac70f54c06579c3 |
|
17-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add x86 fast-isel for calls returning first-class aggregates. rdar://9435872. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
d25d16c901405a329fc99f2cb845105164e540e6 |
|
14-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Zap useless code; this hasn't done anything useful since fast-isel switched to being bottom-up (a very long time ago). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d227eedf8270f816270259742c17685f59044a22 |
|
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
fast-isel sret calls, try 2. We actually do need to do something on x86-32. rdar://problem/9303592 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
6cf31b0a1a786385d8fb13d45abf0f9c3030dc6f |
|
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert r130348; causing buildbot issues on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8211a6a61d82da340c20fde078148bde63e2d83e |
|
28-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
fast-isel sret. We actually don't need to do anything special on x86. :) rdar://problem/9303592 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
d5089a9794b46918128c2fec1b5ec1d20f7572fa |
|
27-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Refactor out code to fast-isel a memcpy operation with a small constant length. (I'm planning to use this to implement byval.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
547eb4fd560cdd77e06c88eed1722bdb94c82b26 |
|
27-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix an edge case involving branches in fast-isel on x86. rdar://problem/9303306 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
558692fd0a31d4d3ae4fd09a3a02f80da2e44e5c |
|
20-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
ADT/Triple: Renambe isOSX... methods to isMacOSX for consistency with the OS triple component. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
2cf711f1e69dc1d00d57814478c8eb12d97ce3a8 |
|
19-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Target/X86: Eliminate uses of getDarwinVers(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
3762046dbfbf17b0c21804cce39f02b2dce05ff9 |
|
19-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add support for FastISel'ing varargs calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
ff009ad1e1152ac6941ea4a85910f125868bd3de |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b44101c1401c23fb86fe649309f52e823206147d |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Implement support for fast isel of calls of i1 arguments, even though they are illegal, when they are a truncate from something else. This eliminates fully half of all the fastisel rejections on a test c++ file I'm working with, which should make a substantial improvement for -O0 compile of c++ code. This fixed rdar://9297003 - fast isel bails out on all functions taking bools git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e03b8d31624b415805940500a40195a540ca94be |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Handle i1/i8/i16 constant integer arguments to calls by prepromoting them. Before we would bail out on i1 arguments all together, now we just bail on non-constant ones. Also, we used to emit extraneous code. e.g. test12 was: movb $0, %al movzbl %al, %edi callq _test12 and test13 was: movb $0, %al xorl %edi, %edi movb %al, 7(%rsp) callq _test13f Now we get: movl $0, %edi callq _test12 and: movl $0, %edi callq _test13f git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c76d12180765782d6abd0fdeb359c3fec7983e2c |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
be layout aware, to produce: testb $1, %al je LBB0_2 ## BB#1: ## %if.then movb $0, %al instead of: testb $1, %al jne LBB0_1 jmp LBB0_2 LBB0_1: ## %if.then movb $0, %al how 'bout that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
90cb88a9b43764ae945e137bcb83fe14ac97d6fd |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix rdar://9297006 - fast isel bails out on trunc to i1 -> bools cry, a common cause of fast isel rejects on c++ code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
0a1c997c27706e315efb61b8b3e110d42cbaae64 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix an x86 fast isel issue where we'd completely give up on folding an address when we have a global variable base an an index. Instead, just give up on folding the global variable. Before we'd geenrate: _test: ## @test ## BB#0: movq _rtx_length@GOTPCREL(%rip), %rax leaq (%rax), %rax addq %rdi, %rax movzbl (%rax), %eax ret now we generate: _test: ## @test ## BB#0: movq _rtx_length@GOTPCREL(%rip), %rax movzbl (%rax,%rdi), %eax ret The difference is even more significant when there is a scale involved. This fixes rdar://9289558 - total fail with addr mode formation at -O0/x86-64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
685090f5988a03da1a515493bad1e592d26b9956 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix an oversight which caused us to compile the testcase (and other less trivial things) into a dummy lea. Before we generated: _test: ## @test movq _G@GOTPCREL(%rip), %rax leaq (%rax), %rax ret now we produce: _test: ## @test movq _G@GOTPCREL(%rip), %rax ret This is part of rdar://9289558 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
dceb52a01b21425e3b4611957ec4988b991ec5a8 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
tidy up and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
b55d6b6a7ea64f1cd168181f619aaa2f7080855a |
|
22-Mar-2011 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel address mode folding to avoid folding instructions outside of the current basic block. This fixes PR9500, rdar://9156159. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d64cfe1506daf95483549e7347098fbf1a978097 |
|
21-Feb-2011 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Target/X86/X86FastISel: [PR6275] Fix Win32's dllimport function with fastisel. "dllimport" function must not be GlobalVariable, but Function. It is enough to check with GlobalValue. test/CodeGen/X86/dll-linkage.ll is updated to check llc -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b99fdee325fe677081dc27bb7d719518452f3256 |
|
16-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
reapply my fix for PR8961 with a tweak to properly handle multi-instruction sequences like calls. Many thanks to Jakob for finding a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d357e88740686e41e9f7fa208887336eb9af3c47 |
|
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
revert my fastisel patch again which apparently still gives the llvm-gcc-i386-linux-selfhost buildbot heartburn... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9e27cc80496bfa5d57bba26aa930e462e7e35a80 |
|
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
reapply r123414 now that the botz are calmed down and the fix is already in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
a899d1c26454694c488c9e609c5ba69df4774872 |
|
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
r123414 broke llvm-gcc bootstrap apparently, revert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d7540414935fb30405ed07a9b193d3f8748f5274 |
|
14-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR8961 - a fast isel miscompilation where we'd insert a new instruction after sext's generated for addressing that got folded. Previously we compiled test5 into: _test5: ## @test5 ## BB#0: movq -8(%rsp), %rax ## 8-byte Reload movq (%rdi,%rax), %rdi addq %rdx, %rdi movslq %esi, %rax movq %rax, -8(%rsp) ## 8-byte Spill movq %rdi, %rax ret which is insane and wrong. Now we produce: _test5: ## @test5 ## BB#0: movslq %esi, %rax movq (%rdi,%rax), %rax addq %rdx, %rax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c36b7069b42bece963b7e6adf020353ce990ef76 |
|
08-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Do not model all INLINEASM instructions as having unmodelled side effects. Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
5191e7cc26aa58e2f1a618187216e40965711aed |
|
06-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove dead code and silence warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c46ec649b109ee7c44b0c8b9df6e913bdb129fc1 |
|
05-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
silence more self assignment warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
742bf87efa5c2e8c10c6b12b35b65fec439cea53 |
|
16-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r118917. With pseudo-instruction expansion moved to a different pass, the complicated interaction between cmov expansion and fast isel is no longer a concern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0e65eb2065fe2ccd08169a56f9f1770a929b8e6e |
|
13-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Revert r118917, which is implicated in the llvm-gcc-i386-linux-selfhost failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
52668c9a3025ee64b408bf041453c93a1ac51908 |
|
12-Nov-2010 |
Dan Gohman <gohman@apple.com> |
When the definition of an address value is in a different block from the user of the address, fall back to just using the address in a register instead of bailing out of fast-isel altogether. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1e96bab329eb23e4ce8a0dc3cc6b33a3f03d15bf |
|
04-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
In the calling convention logic, ValVT is always a legal type, and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1440e8b918d7116c3587cb95f4f7ac7a0a0b65ad |
|
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Inside the calling convention logic LocVT is always a simple value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4590766580ff94e3a7fa95cda7b602b23f14843e |
|
31-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
Factorize the duplicated logic for choosing the right argument calling convention out of the fast and normal ISel files, and into the calling convention TD file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e26032d5b26e7b2a1158d6980b7e42390a1f34c5 |
|
31-Oct-2010 |
Duncan Sands <baldrick@free.fr> |
Remove CCAssignFnForRet from X86 FastISel in favour of RetCC_X86, which has the same logic specified in the CallingConv TD file. This brings FastISel in line with the standard X86 ISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e487b017e94393ec4e90e8bb02818cab39190787 |
|
30-Sep-2010 |
Eric Christopher <echristo@apple.com> |
Noticed by inspection when looking for other cmov bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
a8bd1ff8c5e77429dd19257b8039a9abca59e6f1 |
|
27-Sep-2010 |
Dale Johannesen <dalej@apple.com> |
MMX parameters aren't handled here yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
beac75da3784929aee9f0357fc5cd76d49d6c3d7 |
|
05-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
implement rdar://6653118 - fastisel should fold loads where possible. Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8bef744518e5904b77ad903d6f05241f9f807a97 |
|
21-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Fix x86 fast-isel's cmp+branch folding to avoid folding when the comparison is in a different basic block from the branch. In such cases, the comparison's operands may not have initialized virtual registers available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0c07b64fec208aab7032633f3c8e8ba43c85e64e |
|
22-Jul-2010 |
Nate Begeman <natebegeman@mac.com> |
Make fast isel win64-aware w.r.t. call-clobbered regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
84d499a6986d88e6387de00fcf46ecef2cb02b89 |
|
17-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MI.isCopy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
6881898eb5886243c17151ed45ffb5bb57466270 |
|
15-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Last COPY conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
be4d10d7fa6f81eda360b451b4baabe64534c74e |
|
12-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Don't fast-isel an x87 comparison opcode, as fast-isel doesn't support branching on x87 comparisons yet. This fixes PR7624. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
75be45cb2ef637f62744a5ac114a5029c5b41503 |
|
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid SSE instructions in FastIsel when it is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1ba318982e4dcca66b6cf7ce624af2ba8a55d9d8 |
|
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use COPY in X86FastISel::X86SelectRet. Don't try a cross-class copy. That is very unlikely anywy since return value registers are usually register class friendly. (%EAX, %XMM0, etc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
599b531a960833719f607d66c97871f1f5ad12c0 |
|
09-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
Change LEA to have 5 operands for its memory operand, just like all other instructions, even though a segment is not allowed. This resolves a bunch of gross hacks in the encoder and makes LEA more consistent with the rest of the instruction set. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
f423a69839c4810b890f8a8b09fb8cfbd6bf0139 |
|
07-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add X86FastISel support for return statements. This entails refactoring a bunch of stuff, to allow the target-independent calling convention logic to be employed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
abd1d859b3c35957a3dd5965cf1fd420df0d20e3 |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel's add folding to actually work, and not fall back to SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
5c87bf64d63fa90107912ff7f94484bfa35379c7 |
|
01-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Teach X86FastISel to fold constant offsets and scaled indices in the same address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1cfe44a4609a36cbf1cc0e70091c30f4162a5b36 |
|
26-Jun-2010 |
Gabor Greif <ggreif@gmail.com> |
use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
1415a602ade564390bd86476feaeb66cb3612951 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Make this comment less specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ea9f151cbc1ce153c7605a02acc31f76cbb3c5a2 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel's address-mode folding to stay within the original basic block. This avoids trouble with examining instructions in other basic blocks which haven't been assigned registers yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
868ee9460c6e3055162f7ed9b05747606096945a |
|
15-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
fix fastisel to handle GS and FS relative pointers. Patch by Nelson Elhage! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d8acddda587cda98d46edb6d5fc71edd79a41654 |
|
01-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix the allocation of shadow space for the Win64 calling convention in X86FastISel. Patch by Jan Sjodin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4d3d6e1a0c99e2212953a90185a8d027c595bf5a |
|
27-May-2010 |
Dan Gohman <gohman@apple.com> |
FastISel doesn't yet handle callee-pop functions. To support this, move IsCalleePop from X86ISelLowering to X86Subtarget. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
3458e9e4dfc8689179a74e954aad78d3a4b564ff |
|
24-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename X86 subregister indices to something shorter. Use the tablegen-produced enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1015ba7018c87f48cc7bb45a564eb4a27241e76a |
|
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ded05e34b65dc42998e9db6ca1abd513e7a9d120 |
|
16-May-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add support for thiscall calling convention. Patch by Charles Davis and Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
d858e90f039f5fcdc2fa93035e911a5a9505cc50 |
|
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const qualifiers with TargetLowering. This eliminates several const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
551754c4958086cc6910da7c950f2875e212f5cf |
|
17-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert 101465, it broke internal OpenGL testing. Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4ec2258ffb495d7ce00177e447740ef1123a27db |
|
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101434 with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
607a7ab3da72a2eb53553a520507cbb8068dd1d8 |
|
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101423 and r101397, they break llvm-gcc self-host on darwin10 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
2ff961f66816daab8bbc58a19025161d969821c2 |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101364, which has been backed out in r101368 with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9ee17208115482441953127615231c59a2f4d052 |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101364, as it trips the linux nightlybot on some clang C++ tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
165dac08d1bb8428b32a5f39cdd3dbee2888987f |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
795ee9dd1e43d9e3ba87c052f721b6f7a2161827 |
|
07-Apr-2010 |
John McCall <rjmccall@apple.com> |
Fix a number of clang -Wsign-compare warnings that didn't have an obvious solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
34247a0f356edf45ae3ad9ce04e1f90a77c6dba7 |
|
29-Mar-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make isInt?? and isUint?? template specializations of the generic versions. This makes calls a little bit more consistent and allows easy removal of the specializations in the future. Convert all callers to the templated functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
88dee30a6ed6979e253cc402e9b94082f60ad534 |
|
18-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Couple of changes that Dan mentioned for llvm.stackprotector fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
07754c2a1b06b5d027cf4cdf532e25f4e8055058 |
|
18-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Make fast-isel understand llvm.stackprotector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f27805b5c5a2c58aeea5dc9d305d6dba61b9f2aa |
|
11-Mar-2010 |
Eric Christopher <echristo@apple.com> |
Have fast-isel understand llvm.objectsize. Update testcase for slightly different codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
29689434635364346cbef6f4e309f1d9fcdd5d80 |
|
11-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add support, testcases, and dox for the new GHC calling convention. Patch by David Terei! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
bfcc8e0a6636651fa1f13949ec2faf99068042f1 |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
not committing what you test = bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
225d4ca8ab7c7d0e7fa0c7d43d95308b16edc554 |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
make gep matching in fastisel match the base of the gep as a register if it isn't possible to match the indexes *and* the base. This fixes some fast isel rejects of load instructions on oggenc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
116b799488327cb95f24ca321f9ab838d5d5e73d |
|
18-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Generate DBG_VALUE from dbg.value intrinsics. These currently comes out as comments but will eventually generate DWARF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b0bc6c361da9009e8414efde317d9bbff755f6c0 |
|
15-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the names of type predicates: rather than having isFloatTy and isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
bd13fb62541136a4891d702feec8b7aba5bf695a |
|
11-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
refactor the conditional jump instructions in the .td file to use a multipattern that generates both the 1-byte and 4-byte versions from the same defm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
1797ed50f488f2030f9f9a0ac7426262abf5220a |
|
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Rename the PerformTailCallOpt variable to GuaranteedTailCallOpt to reflect its current purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
973f46790fada0c949a887e0fcef3aeeb3a13430 |
|
29-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Add assertion to humor the paranoid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
381993f1f2f947fcdaec814181a735091b22fcba |
|
27-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Restore to pre-94570 state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
bbba00c8fadd8958fad4521e1a3d76f8ad3ae981 |
|
27-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Ignore 'forced' tailcall opt in fastisel mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ddc419c581ac827045d614099adaa60765ce1ebe |
|
26-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Code refactoring, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
77f79895f8e8ba88f0a9a98610c4461c1d692296 |
|
18-Jan-2010 |
Eric Christopher <echristo@apple.com> |
Have FastISel handle llvm.trap(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
796248fdb197b29f427819cc85a98bfad52c95ce |
|
12-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Revert commit 93204, since it causes the assembler to barf on x86-64 linux with messages like this: Error: Incorrect register `%r14' used with `l' suffix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b85071c7368199e9a5257992cbeff1eb63473f08 |
|
11-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Add manual ISD::OR fastisel selection routines. TableGen is no longer autogen them after 93152 and 93191. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9e83467baa7f6c2111de133852ac65f8c2237359 |
|
11-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Reword this comment to reference a more fundamental issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
968b35ff47a1f4ac3c45cc658e389d3b374e9b10 |
|
08-Jan-2010 |
Eric Christopher <echristo@apple.com> |
After further thought revert the patch to make fast-isel avoid putting relocations into the constant pool - this isn't needed for correctness and in the rare occasion it happens would pull us out of fast isel for the block. If fast-isel application startup time ever becomes an issue we can add better support for these addresses instead of bailing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d74a7d4e2cbd3f5c46ee7b6299249d7729cf8804 |
|
08-Jan-2010 |
Eric Christopher <echristo@apple.com> |
Remove extraneous include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e6c74c9c2a49be4500d52c2531c1a45221a530a4 |
|
07-Jan-2010 |
Eric Christopher <echristo@apple.com> |
If the data requires a relocation then don't attempt to add it to the constant pool for fast-isel. We already don't add it for the normal case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
11acaa374cdcebb161bf0de5f244265d78a749c1 |
|
05-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Convert a ton of simple integer type equality tests to the new predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
3f2bf85d14759cc4b28a86805f566ac805a54d00 |
|
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
cf0fe8d813727383d630055bb9d1cde21b00b7e7 |
|
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
strength reduce a ton of type equality tests to check the typeid (Through the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
65c3c8f323198b99b88b109654194540cf9b3fa5 |
|
02-Sep-2009 |
Sandeep Patel <deeppatel1987@gmail.com> |
Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
7e7f06e70a07be4a5fad81883da6bebf33e1b3f6 |
|
27-Aug-2009 |
Dan Gohman <gohman@apple.com> |
X86FastISel support for loading and storing values of type i1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
c3c9c486e48fd8fe4ab9929b1aa614dd6e613d2c |
|
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Teach X86FastISel how to handle CCValAssign::BCvt, which is used for MMX arguments. This fixes PR4684. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
|
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f1d6bd5cbe6ae4a9327b159dcbc0810f0affd0fb |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
code model is never set to default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e2c920845a407957b8ae2600feae1f4c85a0d4d0 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
remove the now-dead TM argument to these methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
3b67e9ba015624a9904a41d6d0fd61cac1b02055 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
add a couple of predicates to test for "stub style pic in PIC mode" and "stub style pic in dynamic-no-pic" mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0d786dd954622b8e7981eee32e9d585ee067d9c5 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
simplify fast isel by using ClassifyGlobalReference. This elimiantes the last use of GVRequiresExtraLoad, so delete it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ed0dca6a5dfa26e63c5636eb092640159182df89 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
GVRequiresExtraLoad is now never used for calls, simplify it based on this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
754b7650c20a0fa3a9df3f067dc02a0905992325 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
actually, just eliminate PCRelGVRequiresExtraLoad. It makes the code more complex and slow than just directly testing what we care about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e6c07b52e76b19d83338901b2e103bd8cbabd42f |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
There is only one case where GVRequiresExtraLoad returns true for calls: split its handling out to PCRelGVRequiresExtraLoad, and simplify code based on this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0aa43de1d0ef6b5ba3a1dd7fe4f2d40797d96f5a |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
split call handling out of X86SelectAddress into X86SelectCallAddress git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d1474d09cbe5fdeec8ba0d6c6b52f316f3422532 |
|
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through MVT and related parts of SDISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
75cdf27f48f0b81f778b6aa50efcefa0497a9dae |
|
09-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
move reasoning about darwin $non_lazy_ptr stubs from asmprinter into isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ff7727f4f71ffba1d1e6dcf9b6a91202b6238016 |
|
09-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
rearrange some code, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
51e8eabd3c50fc60e909cbd1729a8698c267beb2 |
|
09-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
make direct calls set MO_PLT or MO_DARWIN_STUB as appropriate with fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
15a380a03567deba90c074a2cd5a45b81ae0958b |
|
09-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
simplify some code based on the fact that picstyles != none are only valid in pic or dynamic-no-pic mode. Also, x86-64 never used picstylegot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
cd714b12fc670a4270fc72aaa50b05b85986a776 |
|
02-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
@GOTPCREL is also rip-relative. Fix fast-isel to do the right thing. This fixes an llvm-gcc bootstrap problem I introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
27598ec1e255daea1e53c286e085b6044d897947 |
|
02-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Fix yet-another bug I introduced into fastisel, this time handling constant pool references that weren't getting properly rip-relative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f530c92cd55f35f64904e42e38b3a2bc92b347cb |
|
02-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bunch of other places that used operator[] to test whether a key is present in a std::map or DenseMap to use find instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
35c28eca627cd9dc2dd3ee3393074080103be456 |
|
01-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
Fix some fast-isel problems selecting global variable addressing in pic mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4c1b606ecd9cb02c0ae1e468ad57d76d6d96bc26 |
|
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
simplify some code and eliminate the symbolicAddressesAreRIPRel() predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
553e571b436ae27cc8b322be6feecd357651b617 |
|
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix clang/test/CodeGenObjC/try.m, a basereg doesn't mean no global anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
18c5987fa33ba9d57ea597e3131f664443765f4e |
|
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Reimplement rip-relative addressing in the X86-64 backend. The new implementation primarily differs from the former in that the asmprinter doesn't make a zillion decisions about whether or not something will be RIP relative or not. Instead, those decisions are made by isel lowering and propagated through to the asm printer. To achieve this, we: 1. Represent RIP relative addresses by setting the base of the X86 addr mode to X86::RIP. 2. When ISel Lowering decides that it is safe to use RIP, it lowers to X86ISD::WrapperRIP. When it is unsafe to use RIP, it lowers to X86ISD::Wrapper as before. 3. This removes isRIPRel from X86ISelAddressMode, representing it with a basereg of RIP instead. 4. The addressing mode matching logic in isel is greatly simplified. 5. The asmprinter is greatly simplified, notably the "NotRIPRel" predicate passed through various printoperand routines is gone now. 6. The various symbol printing routines in asmprinter now no longer infer when to emit (%rip), they just print the symbol. I think this is a big improvement over the previous situation. It does have two small caveats though: 1. I implemented a horrible "no-rip" modifier for the inline asm "P" constraint modifier. This is a short term hack, there is a much better, but more involved, solution. 2. I had to xfail an -aggressive-remat testcase because it isn't handling the use of RIP in the constant-pool reading instruction. This specific test is easy to fix without -aggressive-remat, which I intend to do next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
89da6990929d2a03a4ed5063f75a9d84bc0c17e9 |
|
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR4466 by making fastisel set operand flags correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
bbd8c33ee67f99f5bad7288dfa465d675714e983 |
|
12-Jun-2009 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Fix Bug 4278: X86-64 with -tailcallopt calling convention out of sync with regular cc. The only difference between the tail call cc and the normal cc was that one parameter register - R9 - was reserved for calling functions through a function pointer. After time the tail call cc has gotten out of sync with the regular cc. We can use R11 which is also caller saved but not used as parameter register for potential function pointers and remove the special tail call cc on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
12513889fdeebc5d835aa6a46f75c73ea8ba1ba3 |
|
03-Jun-2009 |
Duncan Sands <baldrick@free.fr> |
Avoid a warning "'U' might be used uninitialized in this function" when using a not-too-smart compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
7d04e4a7c0a803bc7ab04986ad184291338f42da |
|
04-May-2009 |
Dan Gohman <gohman@apple.com> |
X86FastISel doesn't support the -tailcallopt ABI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
6241762c5a8f5e22679ffcd7a592e405e279f0a9 |
|
27-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Rename GR8_, GR16_, GR32_, and GR64_ to GR8_ABCD, GR16_ABCD, GR32_ABCD, and GR64_ABCD, respectively, to help describe them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
21e3dfbc86955cf46a362e8ed36b5b73b42961c9 |
|
13-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Implement x86 h-register extract support. - Add patterns for h-register extract, which avoids a shift and mask, and in some cases a temporary register. - Add address-mode matching for turning (X>>(8-n))&(255<<n), where n is a valid address-mode scale value, into an h-register extract and a scaled-offset address. - Replace X86's MOV32to32_ and related instructions with the new target-independent COPY_TO_SUBREG instruction. On x86-64 there are complicated constraints on h registers, and CodeGen doesn't currently provide a high-level way to express all of them, so they are handled with a bunch of special code. This code currently only supports extracts where the result is used by a zero-extend or a store, though these are fairly common. These transformations are not always beneficial; since there are only 4 h registers, they sometimes require extra move instructions, and this sometimes increases register pressure because it can force out values that would otherwise be in one of those registers. However, this appears to be relatively uncommon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8d57b778b5f57295ac9aac2e1ad1434d9ac2bcc4 |
|
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix a cross-block fastisel crash handling overflow intrinsics. See comment for details. This fixes rdar://6772169 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
a9a42259ed0cd418466bcaeff93eca933dae7efb |
|
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
simplify code by using IntrinsicInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0461c0a8f5b476794a061e995210906670a4542d |
|
12-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Add new TargetInstrDesc::hasImplicitUseOfPhysReg and hasImplicitDefOfPhysReg methods. Use them to remove a look in X86 fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
094fad37b90946c91a09eb9270a0dbe800f49d87 |
|
08-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Re-apply 68552. Tested by bootstrapping llvm-gcc and using that to build llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
044b5344c4a97b3c709a05b9c5f9296656477652 |
|
08-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r68552. This was causing a failure in the self-hosting LLVM builds. --- Reverse-merging (from foreign repository) r68552 into '.': U test/CodeGen/X86/tls8.ll U test/CodeGen/X86/tls10.ll U test/CodeGen/X86/tls2.ll U test/CodeGen/X86/tls6.ll U lib/Target/X86/X86Instr64bit.td U lib/Target/X86/X86InstrSSE.td U lib/Target/X86/X86InstrInfo.td U lib/Target/X86/X86RegisterInfo.cpp U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86CodeEmitter.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86InstrInfo.h U lib/Target/X86/X86ISelDAGToDAG.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h U lib/Target/X86/X86ISelLowering.h U lib/Target/X86/X86InstrInfo.cpp U lib/Target/X86/X86InstrBuilder.h U lib/Target/X86/X86RegisterInfo.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
2a6411bbbdc6a23605fa206e07fc4f99a3d5dff2 |
|
07-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce code duplication on the TLS implementation. This introduces a small regression on the generated code quality in the case we are just computing addresses, not loading values. Will work on it and on X86-64 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
44ceb8a3411620b4191ef9ada1556be45a325719 |
|
13-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
generalize this code so that fast isel handles integer truncates to i1, which codegen to the same thing as integer truncates to i8 (the top bits are just undefined). This implements rdar://6667338 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1606e8e4cd937e6de6681f686c266cf61722d972 |
|
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants. 2. MachineConstantPool alignment field is also a log2 value. 3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values. 4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries. 5. Asm printer uses expensive data structure multimap to track constant pool entries by sections. 6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic. Solutions: 1. ConstantPoolSDNode alignment field is changed to keep non-log2 value. 2. MachineConstantPool alignment field is also changed to keep non-log2 value. 3. Functions that create ConstantPool nodes are passing in non-log2 alignments. 4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT. 5. Asm printer uses cheaper data structure to group constant pool entries. 6. Asm printer compute entry offsets after grouping is done. 7. Change JIT code to compute entry offsets on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
087fcf3e89c2728b5fc850c587da4876319877ca |
|
08-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
do not export all the X86FastISel symbols, ever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
e9865945ad8286a007d8b8465703c5b242f94caa |
|
23-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fast-isel can't do TLS yet, so it should fall back to SDISel if it sees TLS addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8d13f8f1043d8b47940ecab7bac838ff1e8166f8 |
|
13-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of BuildMI from X86. There were some that might even matter in X86FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
04ee5a1d9267e5e6fab8f088095fcb83c3c5cbd1 |
|
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
653456c351d9bf908ebd982f6ae9df3449c5f34b |
|
07-Jan-2009 |
Dan Gohman <gohman@apple.com> |
X86_COND_C and X86_COND_NC are alternate mnemonics for X86_COND_B and X86_COND_AE, respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
fd1c6c31231025eb23c73cbfc58a5bd7e0b9736f |
|
23-Dec-2008 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b12b1a27f50628f5bd895de5278f70a8c905ca0a |
|
20-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix fast-isel to not emit invalid assembly when presented with a constant shift count that doesn't fit in the shift instruction's immediate field. This fixes PR3242. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
a33649e98ce6512ed95a5e5f7b72dd28e243a289 |
|
19-Dec-2008 |
Chris Lattner <sabre@nondot.org> |
Fix some release-assert warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9a90132af465ec8a93b36ff5008160b52454b3ba |
|
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Only perform SETO/SETC to JO/JC conversion if extractvalue is coming from an arithmetic with overflow instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
30a64a76492b6a92ccf6d6a6ac907ff8b2b18305 |
|
10-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement fast-isel conversion of a branch instruction that's branching on an overflow/carry from the "arithmetic with overflow" intrinsics. It searches the machine basic block from bottom to top to find the SETO/SETC instruction that is its conditional. If an instruction modifies EFLAGS before it reaches the SETO/SETC instruction, then it defaults to the normal instruction emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c065b3f5ec5c165f57e26e8a26edbbd250682ea2 |
|
09-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Correct my English. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
52370a10891673c1065a354f2497c22b82a32b1b |
|
09-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Add initial support for fast-isel of the [SU]ADDO intrinsics. It isn't complete. For instance, it lowers the common case into this less-than-optimal code: addl %ecx, %eax seto %cl testb %cl, %cl jne LBB1_2 ## overflow instead of: addl %ecx, %eax jo LBB1_2 ## overflow That will come in a future commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
55fdaec36a0a2fac68d2f085c11fce22d2742db7 |
|
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Fix a couple of mistaken switch case fall-throughs. Thanks to Bill for spotting these! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
7b66e041821309306beccda0fe58ffa096ee1f4a |
|
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Implement the optimized FCMP_OEQ/FCMP_UNE code for x86 fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
241ab47ac13e243e16b6725a04ba73b9b19a478e |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
add support for folding immediates into stores when they are due to argument passing in calls. This is significant because it hits all immediate arguments to calls on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
438949aa9d95877a7815ae1a0139c63f0f6d533d |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fold immediates into stores in simple cases, this produces diffs like this: - movl $0, %eax - movl %eax, _yy_n_chars + movl $0, _yy_n_chars git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d53886bb488fbef11b8083d7e99bcf53a51861a0 |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fold compare of null pointer into compare with 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
160f6cc209068e5e2db6514a010d5a32cf28be4f |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Some minor cleanups: 1. Compute action in X86SelectSelect based on MVT instead of type. 2. Use TLI.getValueType(..) instead of MVT::getVT(..) because the former handles pointers and the later doesn't. 3. Don't pass TLI into isTypeLegal, since it already has access to it as an ivar. #2 gives fast isel some minor new functionality: handling load/stores of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
45ac17f5213ee9ad080b9876578ffa49c61121a5 |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Use switch on VT instead of Type* comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
51ccb3deba7ccf2a3f154a9c4e4182146eccc846 |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Use X86FastEmitCompare for FCMP_OEQ and FCMP_UNE: it doesn't change the generated code, but makes the code simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9a08a61d7908004b061d560b11917e5c1c7ecc02 |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
refactor compare emission out into a new X86FastEmitCompare method, which makes it easy to share the compare/imm folding logic with 'setcc'. This shaves a bunch of instructions off the common select case, which happens a lot in llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0e13c78347bdcd1a4ba9b2e78d1389a46bf52c2c |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
Fold immediates into compares when possible, producing "cmp $4, %eax" instead of loading 4 into a register and then doing the compare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
709d829d3cb451599f1834b8cd9af0d9083107e0 |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
more minor refactoring of X86SelectBranch, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
871d246fd4d14d590297123b2a6cb0a601b3d81a |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
factor buildmi calls in X86SelectBranch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
8aeeeb9d24fe36dab5d193174487f05a1fa640d3 |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
factor some more BuildMI's in X86SelectCmp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
54aebde0be490d6d3d925b0fc1c3f4de0a5356bf |
|
15-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
factor some BuildMI calls, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
8c3f8b6dea6d8ddcc40e3d996caa93067ee64454 |
|
08-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Add MBB successors and physreg Uses in the same order that SDISel typically adds them in. This makes it a little easier to compare FastISel output with SDISel output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
145b828014397f02ec0e35f3ba768b61a36b0b9f |
|
07-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Instead of emitting an implicit use for the super-register of X86::CL that was used, emit an EXTRACT_SUBREG from the CL super-register to CL. This more precisely describes how the CL register is being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4e6ed5eefd578db5bff172298d7ff7d7eb69b947 |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel to handle dynamic allocas that have avoided getting inserted into the ValueMap. This avoids infinite recursion in some rare cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
5bbee4b40a90f2825e229ed0f1d2b7b1ee7cd361 |
|
02-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Work around an interaction between fast-isel and regalloc=local. The local register allocator's physreg liveness doesn't recognize subregs, so it doesn't know that defs of %ecx that are immediately followed by uses of %cl aren't dead. This comes up due to the way fast-isel emits shift instructions. This is a temporary workaround. Arguably, local regalloc should handle subreg references correctly. On the other hand, perhaps fast-isel should use INSERT_SUBREG instead of just assigning to the most convenient super-register of %cl when lowering shifts. This fixes MultiSource/Benchmarks/MallocBench/espresso, MultiSource/Applications/hexxagon, and others, under -fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
6d4b0525791182435a36d33340b97e1d7041e388 |
|
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Split x86's ADJCALLSTACK instructions into 32-bit and 64-bit forms. This allows the 64-bit forms to use+def RSP instead of ESP. This doesn't fix any real bugs today, but it is more precise and it makes the debug dumps on x86-64 look more consistent. Also, add some comments describing the CALL instructions' physreg operand uses and defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
5396c99baa8fe0c821b9157590d8e9cd498b15bc |
|
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel's output for x86-32 PIC constant pool addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
57c3dac0df7ac1b53ae7c0e5d2adc459fc7bd37c |
|
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Move the GlobalBaseReg field out of X86ISelDAGToDAG.cpp and X86FastISel.cpp into X86MachineFunction.h, so that it can be shared, instead of having each selector keep track of its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9b66d73bb1a0279d86e9ba77807146146a07724f |
|
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Disable all x87 usage, including f32 and f64 when the subtarget doesn't have SSE(2), with X86FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
7962e856d1460cc61ce246e31ca77e99f85228a3 |
|
29-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix an over-pessimization about GlobalVariable addresses in X86FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
09aae469cee47c0572cbfcf3a3baa332aa3b5258 |
|
26-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel's address folding to check displacement values for overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
97135e1ee51357245561a5108f90a8a1161431a1 |
|
26-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for determining when symblic addresses require RIP-relative addressing and use it to fix a bug in X86FastISel in x86-64 PIC mode, where it was trying to use base/index registers with RIP-relative addresses. This fixes a bunch of x86-64 testsuite failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
5af29c2e5709b56de701fa4adb4705b9f84973c8 |
|
26-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Disable support for x86_f80 in X86FastISel. Supporting it would require more work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
789ce77c6a90747aab392e01f30601d55a95fe3a |
|
26-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in which address displacements were being added to the load from the stub, instead of the result of the load from the stub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0598866c052147c31b808391f58434ce3dbfb838 |
|
25-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Large mechanical patch. s/ParamAttr/Attribute/g s/PAList/AttrList/g s/FnAttributeWithIndex/AttributeWithIndex/g s/FnAttr/Attribute/g This sets the stage - to implement function notes as function attributes and - to distinguish between function attributes and return value attributes. This requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
2cc3aa44591313307e2d596daca784419ab7286d |
|
25-Sep-2008 |
Dan Gohman <gohman@apple.com> |
PIC support in X86FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
290ae0398e3673ff742c8e0e2fddfae388950c5b |
|
22-Sep-2008 |
Arnold Schwaighofer <arnold.schwaighofer@gmail.com> |
Change the calling convention used when tail call optimization is enabled from CC_X86_32_TailCall to CC_X86_32_FastCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
743922ea75ba650b9e87a3627f0de8d1e0869d00 |
|
21-Sep-2008 |
Chris Lattner <sabre@nondot.org> |
Fold immediates into X86 shifts with fast isel. This generates: sarl $3, %ecx instead of: movl $3, %ecx sarl %cl, %edx This shrinks fast isel 176.gcc by about 2000 instructions (.3%) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
7e8ef60e3cff69cadc73187c0fc0df22caad3994 |
|
20-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix a FastISel GlobalVariable CSE bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
3589308f37177f28257dd1a39dc6d6395a435acb |
|
19-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Address-mode folding for X86FastISel. It's pretty basic, but it catches a fair number of common cases. Note that this currently causes Fast-ISel to leave behind lots of dead instructions. Those will be dealt with in subsequent commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
1fbc3cd674788d30fdc4813a221b07da8482550f |
|
18-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Simplify this code. The FastISel class has its own TD member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b5b6ec64889b6ee1f75c9a21efb99570e58a517f |
|
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
FastISel: For calls, prefer using the callee's address as a constant over having it in a register. And wait until after checking type legality before requesting that the callee address be placed in a register. Also, fix support for calls with void return type. This speeds up fast-isel isel time by about 15% and reduces instruction counts by about 3% overall on certain testcases. It also changes many indirect calls to direct calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
ac34a00fe0784cd6efc466f03f93ab1017fa9726 |
|
11-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug in ANY_EXTEND handling that was breaking 403.gcc on X86-64 in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
b63691350d3e08d4bf6d400b79e3174b5bd1d61d |
|
11-Sep-2008 |
Owen Anderson <resistor@mac.com> |
If ISD::ANY_EXTEND fails, try ISD::ZERO_EXTEND and ISD::SIGN_EXTEND before giving up. This fixes 445.gobmk on X86-64 in fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
78efce61559ae42a26724eb302d3da8be8a6ede0 |
|
10-Sep-2008 |
Dan Gohman <gohman@apple.com> |
X86FastISel support for double->float and float->double casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
debdea0a6693193d8a2968616c9c51c0bbede4ae |
|
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle calls which produce i1 results: promote to i8 but and it with 1 to get the low bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
863890e2fa7339da613532b065627e941aa2eaf6 |
|
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix copy+pastos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
24e3a90904601fc6caf9d1b8c1be965806d529ae |
|
08-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add support to extend call operands when needed. Enable x86 fastisel call support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f3d4efe30cb324ed201a2a96d5850b67e850f520 |
|
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Initial fastisel call support for C, Fast, and X86_FastCall calling conventions. It's meant to handle "simple" calls, i.e. no byval, structret, etc. It doesn't support multi-result returns either. Not yet turned on, it needs to support sext / zext of arguments and result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
10a8d9c737eb0e55b9460e3743b0136ab91ed833 |
|
07-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle x86 truncate to i8 with target hook for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
3b217c6f5c21a5f16670b14e3beeaff5ee74df1c |
|
06-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix constant pool loads, and remove broken versions of addConstantPoolReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f58cb6d224999631e54537dd04232ec9bb570b14 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel's shift and select code to reject illegal types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
31d26912cc2624d39ee4fa7accb4aca5cf1aacd6 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix the opcodes used by X86FastISel for shifts and conditional moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
0de588fd89ca7374dc91623d6627cfb98cfe3fc8 |
|
05-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Factor out code that emits load and store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
9c7216f984111eb8f1716741bc9039ed86ec4a9b |
|
05-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Rename method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c39f4dba1c79af56c1d41ca40ab07390db8a8fb0 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
X86FastISel support for shifts and conditional moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
4f22bb0676e09aacf6898c5b9ab489a8b01f8fc0 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Check a comparion's operand type for legality before expanding its operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
f52550b50ee2d076dfad077bbe81b11f1300ab03 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix X86FastISel code for comparisons and conditional branches to check the result of getRegForValue before using it, and to check for illegal operand types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
d89ae99ec81f4806fe02b54c7dbe706a1f49ddab |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
X86FastISel support for conditional branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
6e3f05f5cebe230bb95f01b5afcc3c8e94106402 |
|
05-Sep-2008 |
Dan Gohman <gohman@apple.com> |
X86FastISel support for ICmpInst and FCmpInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
79924eb6f5708a2ae36ba22b674b2d7bea3167e6 |
|
04-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix the ordering of operands to the store (inverted relative to LLVM IR), and fix the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
a3971dfbfeff803f5de53cf62d794c9d60aa3b7a |
|
04-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add a first attempt at implementing stores for X86 fast isel using target hooks. Dan or Evan, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
373d50af1df0eb853f0773cd734f7078a0b139fd |
|
04-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Load from GV stub should be locally CSE'd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
8b19e56051c45c3e48523238a5a0f33bbac0115d |
|
03-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add X86 target hook to implement load (even from GlobalAddress). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
88e3041ca61eeaebbbd6c68a1b37209983b4c765 |
|
03-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak fast isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
c3f44b0d636ff9a6d706ea9ac17ae77c8fa8aeff |
|
03-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Let tblgen only generate fastisel routines, not the class definition. This makes it easier for targets to define its own fastisel class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
667d8f7607f021c66c854ff3ea35a9df107eabfe |
|
29-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for fast isel of instructions that have inputs pinned to physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|
99b218218c0ca3ebfdd568ddfeafa07842e9d69d |
|
29-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add a target callback for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.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/Target/X86/X86FastISel.cpp
|
1adf1b03af9b1e2ee5a527caa5b14c9d55a32173 |
|
19-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Instantiate FastISel for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86FastISel.cpp
|