- Aug 21, 2012
-
-
Richard Smith authored
no cost to using memcpy here: the fixed code is optimized by LLVM to perfect machine code. llvm-svn: 162311
-
Chad Rosier authored
llvm-svn: 162306
-
Chad Rosier authored
this is the index of the operand that failed to match. Note: This may cause a buildbot failure due to an API mismatch in clang. Should recover with my next commit to clang. llvm-svn: 162295
-
Craig Topper authored
llvm-svn: 162270
-
Craig Topper authored
llvm-svn: 162267
-
Craig Topper authored
llvm-svn: 162264
-
Craig Topper authored
llvm-svn: 162263
-
Craig Topper authored
Replace a break with llvm_unreachable in the default case of a nested switch. Condense code a bit. No functional change. llvm-svn: 162261
-
Craig Topper authored
llvm-svn: 162260
-
Craig Topper authored
llvm-svn: 162257
-
Jakob Stoklund Olesen authored
*** Bad machine code: Explicit definition marked as use *** - function: test_cos - basic block: BB#0 L.entry (0x7ff2a2024fd0) - instruction: VSETLNi32 %D11, %D11<undef>, %R0, 0, pred:14, pred:%noreg, %Q5<imp-use,kill>, %Q5<imp-def> - operand 0: %D11 llvm-svn: 162247
-
- Aug 20, 2012
-
-
Jakob Stoklund Olesen authored
The test case ARM/2011-05-04-MultipleLandingPadSuccs.ll was creating duplicate successor list entries. llvm-svn: 162222
-
Sebastian Pop authored
llvm-svn: 162217
-
Michael Liao authored
llvm-svn: 162214
-
Akira Hatanaka authored
Patch by Petar Jovanovic. llvm-svn: 162213
-
Craig Topper authored
llvm-svn: 162194
-
Craig Topper authored
llvm-svn: 162193
-
Craig Topper authored
llvm-svn: 162192
-
- Aug 19, 2012
-
-
Nadav Rotem authored
this allows for better code generation. Added a new DAGCombine transformation to convert FMAX and FMIN to FMANC and FMINC, which are commutative. For example: movaps %xmm0, %xmm1 movsd LC(%rip), %xmm0 minsd %xmm1, %xmm0 becomes: minsd LC(%rip), %xmm0 llvm-svn: 162187
-
Benjamin Kramer authored
llvm-svn: 162186
-
- Aug 18, 2012
-
-
Jakob Stoklund Olesen authored
These nodes are no longer needed because the peephole pass can fold CMOV+AND into ANDCC etc. llvm-svn: 162179
-
Craig Topper authored
Remove virtual from many methods. These methods replace methods in the base class, but the base class methods aren't virtual so it just increased call overhead. llvm-svn: 162178
-
Jakob Stoklund Olesen authored
This turns common i1 patterns into predicated instructions: (add (zext cc), x) -> (select cc (add x, 1), x) (add (sext cc), x) -> (select cc (add x, -1), x) For a function like: unsigned f(unsigned s, int x) { return s + (x>0); } We now produce: cmp r1, #0 it gt addgt.w r0, r0, #1 Instead of: movs r2, #0 cmp r1, #0 it gt movgt r2, #1 add r0, r2 llvm-svn: 162177
-
Jakob Stoklund Olesen authored
Add these transformations to the existing add/sub ones: (and (select cc, -1, c), x) -> (select cc, x, (and, x, c)) (or (select cc, 0, c), x) -> (select cc, x, (or, x, c)) (xor (select cc, 0, c), x) -> (select cc, x, (xor, x, c)) The selects can then be transformed to a single predicated instruction by peephole. This transformation will make it possible to eliminate the ISD::CAND, COR, and CXOR custom DAG nodes. llvm-svn: 162176
-
Nadav Rotem authored
Reapply r162160 with a fix: Optimize Arith->Trunc->SETCC sequence to allow better compare/branch code. llvm-svn: 162172
-
Anton Korobeynikov authored
Make sure the generic pattern is used. llvm-svn: 162170
-
Craig Topper authored
Refactor code a bit to reduce number of calls in the final compiled code. No functional change intended. llvm-svn: 162166
-
Craig Topper authored
llvm-svn: 162165
-
Nadav Rotem authored
llvm-svn: 162164
-
Nadav Rotem authored
arithmetic instructions. However, when small data types are used, a truncate node appears between the SETCC node and the arithmetic operation. This patch adds support for this pattern. Before: xorl %esi, %edi testb %dil, %dil setne %al ret After: xorb %dil, %sil setne %al ret rdar://12081007 llvm-svn: 162160
-
- Aug 17, 2012
-
-
Akira Hatanaka authored
llvm-svn: 162136
-
Akira Hatanaka authored
No new tests are added. All tests in ExecutionEngine/MCJIT that have been failing pass after this patch is applied (when "make check" is done on a mips board). Patch by Petar Jovanovic. llvm-svn: 162135
-
Jakob Stoklund Olesen authored
PEI can't handle the pseudo-instructions. This can be removed when the pseudo-instructions are replaced by normal predicated instructions. Fixes PR13628. llvm-svn: 162130
-
Akira Hatanaka authored
Patch by Vladimir Medic. llvm-svn: 162124
-
Bill Wendling authored
make it more consistent with its intended semantics. The `linker_private_weak_def_auto' linkage type was meant to automatically hide globals which never had their addresses taken. It has nothing to do with the `linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix among other things. The intended semantic is more like the `linkonce_odr' linkage type. Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore changing the semantics so that it produces the correct output for the linker. Note: The old linkage name `linker_private_weak_def_auto' will still parse but is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0. <rdar://problem/11754934> llvm-svn: 162114
-
Jakob Stoklund Olesen authored
llvm-svn: 162107
-
Tim Northover authored
llvm-svn: 162094
-
Craig Topper authored
llvm-svn: 162089
-
Craig Topper authored
Make ReplaceATOMIC_BINARY_64 a static function. Use a nested switch to reduce to only a single call to it thus allowing it to be inlined by the compiler. llvm-svn: 162088
-
Craig Topper authored
llvm-svn: 162086
-