- Apr 21, 2013
-
-
Tim Northover authored
This allows common sp-offsets to be part of the instruction and is probably faster on modern CPUs too. llvm-svn: 179977
-
Jakob Stoklund Olesen authored
With a little help from the frontend, it looks like the standard va_* intrinsics can do the job. Also clean up an old bitcast hack in LowerVAARG that dealt with unaligned double loads. Load SDNodes can specify an alignment now. Still missing: Calling varargs functions with float arguments. llvm-svn: 179961
-
- Apr 20, 2013
-
-
Tim Northover authored
Previously, when spilling 64-bit paired registers, an LDMIA with both a FrameIndex and an offset was produced. This kind of instruction shouldn't exist, and the extra operand was being confused with the predicate, causing aborts later on. This removes the invalid 0-offset from the instruction being produced. llvm-svn: 179956
-
Tim Northover authored
llvm-svn: 179952
-
Tim Northover authored
I think it's almost impossible to fold atomic fences profitably under LLVM/C++11 semantics. As a result, this is now unused and just cluttering up the target interface. llvm-svn: 179940
-
Tim Northover authored
llvm-svn: 179939
-
Hal Finkel authored
The getSwappedPredicate function can be used in other places (such as in improvements to the PPCCTRLoops pass). Instead of trapping it as a static function in PPCInstrInfo, move it into PPCPredicates with other predicate-related things. No functionality change intended. llvm-svn: 179926
-
Stephen Lin authored
Add CodeGen support for functions that always return arguments via a new parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). llvm-svn: 179925
-
Stephen Lin authored
llvm-svn: 179913
-
Akira Hatanaka authored
llvm-svn: 179906
-
Eli Bendersky authored
trying to move as much FastISel logic as possible out of the main path in SelectionDAGISel - intermixing them just adds confusion. llvm-svn: 179902
-
Michael Liao authored
llvm-svn: 179901
-
Hal Finkel authored
When matching a compare with a subtract where the arguments of the compare are swapped w.r.t. the arguments of the subtract, we need to negate the predicates (or CR bit indices) of the users. This, however, is not the same as inverting the predicate (negating LT -> GT, but inverting LT -> GE, for example). The ARM backend seems to do this correctly, but when I adapted the code for the PPC backend, I introduced an error in this logic. Comparison optimization is now enabled again by default. llvm-svn: 179899
-
- Apr 19, 2013
-
-
Anton Korobeynikov authored
Based on the patch by David Nadlinger! llvm-svn: 179889
-
Chad Rosier authored
llvm-svn: 179875
-
Akira Hatanaka authored
This patch adds support for recoded (meaning assembly-language compatible to standard mips32) arithmetic 32-bit instructions. Patch by Zoran Jovanovic. llvm-svn: 179873
-
Akira Hatanaka authored
operand type to uimm16. Patch by Vladimir Medic. llvm-svn: 179872
-
Chad Rosier authored
indended. Part of rdar://13663589 llvm-svn: 179871
-
Chad Rosier authored
qualifiers don't necessarily begin with an identifier (e.g., ::foo::bar). llvm-svn: 179867
-
Chad Rosier authored
llvm-svn: 179866
-
Chad Rosier authored
llvm-svn: 179865
-
Chad Rosier authored
llvm-svn: 179856
-
Tim Northover authored
Patch from Mihail Popa llvm-svn: 179854
-
Tim Northover authored
llvm-svn: 179847
-
Michael Liao authored
llvm-svn: 179833
-
Tom Stellard authored
llvm-svn: 179830
-
Tom Stellard authored
InstFlag has a default value of 0 and will simplify the VOP3 patterns. Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 179829
-
Bill Wendling authored
llvm-svn: 179820
-
Chad Rosier authored
AT&T dialect. Test case for r179804 as well. rdar://13674398 and PR13340. llvm-svn: 179813
-
Bill Wendling authored
llvm-svn: 179808
-
Hal Finkel authored
This seems to cause a stage-2 LLVM compile failure (by crashing TableGen); do I'm disabling this for now. llvm-svn: 179807
-
Chad Rosier authored
variant/dialect. Addresses a FIXME in the emitMnemonicAliases function. Use and test case to come shortly. rdar://13688439 and part of PR13340. llvm-svn: 179804
-
Hal Finkel authored
Many PPC instructions have a so-called 'record form' which stores to a specific condition register the result of comparing the result of the instruction with zero (always as a signed comparison). For integer operations on PPC64, this is always a 64-bit comparison. This implementation is derived from the implementation in the ARM backend; there are some differences because PPC condition registers are allocatable virtual registers (although the record forms always use a specific one), and we look for a matching subtraction instruction after the compare (but before the first use) in addition to before it. llvm-svn: 179802
-
- Apr 18, 2013
-
-
Benjamin Kramer authored
This pattern started popping up in vectorized min/max reductions. llvm-svn: 179797
-
Derek Schuff authored
In X86FastISel::X86SelectStore(), improperly aligned stores are rejected and handled by the DAG-based ISel. However, X86FastISel::X86SelectLoad() makes no such requirement. There doesn't appear to be an x86 architectural correctness issue with allowing potentially unaligned store instructions. This patch removes this restriction. Patch by Jim Stichnot. llvm-svn: 179774
-
Chad Rosier authored
llvm-svn: 179765
-
Chad Rosier authored
llvm-svn: 179764
-
Hao Liu authored
llvm-svn: 179751
-
Akira Hatanaka authored
llvm-svn: 179741
-
Akira Hatanaka authored
llvm-svn: 179739
-