- Nov 13, 2013
-
-
Rafael Espindola authored
llvm-svn: 194530
-
- Nov 12, 2013
-
-
Andrew Trick authored
I still don't know how to refer to the fixed operands symbolically. I plan to look into it. llvm-svn: 194529
-
Sebastian Pop authored
print the name of the function on which the dependence analysis is performed such that changes to the testcase are easier to review. llvm-svn: 194528
-
Sebastian Pop authored
llvm-svn: 194527
-
Sebastian Pop authored
llvm-svn: 194526
-
Nadav Rotem authored
Fold (iszero(A&K1) | iszero(A&K2)) -> (A&(K1|K2)) != (K1|K2) if we know that K1 and K2 are 'one-hot' (only one bit is on). llvm-svn: 194525
-
Nadav Rotem authored
FoldBranchToCommonDest merges branches into a single branch with or/and of the condition. It has a heuristics for estimating when some of the dependencies are processed by out-of-order processors. This patch adds another rule to the heuristics that says that if the "BonusInstruction" that we speculatively execute is used by the condition of the second branch then it is okay to hoist it. This change exposes more opportunities for other passes to transform the code. It does not matter that much that we if-convert the code because the selectiondag builder splits or/and branches into multiple branches when profitable. llvm-svn: 194524
-
Akira Hatanaka authored
argument was not being passed in $f14. llvm-svn: 194522
-
Akira Hatanaka authored
llvm-svn: 194519
-
Eric Christopher authored
llvm-svn: 194515
-
Justin Bogner authored
Add user-supplied C runtime and compiler-rt library functions to llvm.compiler.used to protect them from premature optimization by passes like -globalopt and -ipsccp. Calls to (seemingly unused) runtime library functions can be added by -instcombine and instruction lowering. Patch by Duncan Exon Smith, thanks! Fixes <rdar://problem/14740087> llvm-svn: 194514
-
Tim Northover authored
The system LDM and STM instructions can't usually writeback to the base register. The one exception is when an LDM is actually an exception-return (i.e. contains PC in the register list). (There's already a test that "ldm sp!, {r0-r3, pc}^" works, which is why there is no positive test). rdar://problem/15223374 llvm-svn: 194512
-
Akira Hatanaka authored
llvm-svn: 194511
-
Akira Hatanaka authored
llvm-svn: 194510
-
Peter Zotov authored
This commit significantly speeds up both bytecode and native builds of LLVM clients (from ~20 second to sub-second link time), and allows to invoke LLVM functions from OCaml toplevel. The behavior for --disable-shared builds is unchanged. llvm-svn: 194509
-
Peter Zotov authored
llvm-svn: 194508
-
Rafael Espindola authored
Constant merge can merge a constant with implicit alignment with one that has explicit alignment. Before this change it was assuming that the explicit alignment was higher than the implicit one, causing the result to be under aligned in some cases. Fixes pr17815. Patch by Chris Smowton! llvm-svn: 194506
-
Weiming Zhao authored
llvm-svn: 194505
-
Chad Rosier authored
copy in MC layer. Added the MC layer tests. Fixed triple setting in test cases. Patch by Ana Pazos <apazos@codeaurora.org>. llvm-svn: 194501
-
Roman Divacky authored
llvm-svn: 194500
-
Andrew Trick authored
We already know how to fold a reload from a frameindex without analyzing the load instruction. Generalize this to handle any frameindex load. This streamlines the logic for rematerializing loads from stack arguments. As a side effect, it allows stackmaps to record a stack argument location without spilling it. Verified no effect on codegen for llvm test-suite. llvm-svn: 194497
-
Andrew Trick authored
llvm-svn: 194496
-
Andrew Trick authored
llvm-svn: 194495
-
Rafael Espindola authored
This reverts commit r194485. The variable is unused in some macro instantiations, but not others. We should probably fix clang to not warn on this. llvm-svn: 194486
-
Rafael Espindola authored
llvm-svn: 194485
-
Vincent Lejeune authored
llvm-svn: 194484
-
Daniel Sanders authored
Like GCC, this re-uses the 'f' constraint and a new 'w' print-modifier: asm ("ldi.w %w0, 1", "=f"(result)); Unlike GCC, the 'w' print-modifer is not _required_ to produce the intended output. This is a consequence of differences in the internal handling of the registers in each compiler. To be source-compatible between the compilers, users must use the 'w' print-modifier. MSA registers (including control registers) are supported in clobber lists. llvm-svn: 194476
-
Benjamin Kramer authored
Both simpler and more powerful than the hand-rolled folding logic. llvm-svn: 194475
-
Daniel Sanders authored
llvm-svn: 194472
-
Daniel Sanders authored
llvm-svn: 194471
-
Bradley Smith authored
llvm-svn: 194470
-
Daniel Sanders authored
[mips][msa] Added support for matching bset, bseti, bneg, and bnegi from normal IR (i.e. not intrinsics) llvm-svn: 194469
-
Daniel Sanders authored
[mips][msa] Change constant used in ori tests to avoid conflict with bseti (also xori to avoid bnegi) Upcoming commit(s) are going to add support for bseti and bnegi. This would cause some existing tests to (correctly) change behaviour and emit a different instruction. This patch prevents this by changing the constant used in ori and xori tests so that they will not be matchable by the bseti and bnegi patterns when these instructions are matchable from normal IR. llvm-svn: 194467
-
Robert Lytton authored
llvm-svn: 194466
-
Robert Lytton authored
llvm-svn: 194465
-
Robert Lytton authored
ATOMIC_FENCE is lowered to a compiler barrier which is codegen only. There is no need to emit an instructions since the XCore provides sequential consistency. Original patch by Richard Osborne llvm-svn: 194464
-
Robert Lytton authored
llvm-svn: 194463
-
Wan Xiaofei authored
Replace std::map with SmallVector to memorize the cached result since SCEV usually belongs to little Loop/BB Linear scan on SmallVector is faster than std::map. Code reviewer : Andrew Trick. Test result : Pass Unit Test & LLVM Test Suite 401.bzip2 0.425721 0.419981 101.37% 403.gcc 24.53855 24.2667 101.12% 429.mcf 0.060847 0.059944 101.51% 433.milc 0.646009 0.636119 101.55% 444.namd 1.383928 1.370614 100.97% 445.gobmk 5.836575 5.800225 100.63% 450.soplex 1.911257 1.895963 100.81% 456.hmmer 1.039565 1.032534 100.68% 458.sjeng 0.897401 0.885567 101.34% 464.h264ref 3.645908 3.577991 101.90% 470.lbm 0.049456 0.048398 102.19% 471.omnetpp 5.638575 5.60435 100.61% bitmnp01 0.045738 0.045291 100.99% cjpegv2data 0.304359 0.302833 100.50% idctrn01 0.046433 0.045763 101.46% quake2 4.534416 4.4952 100.87% quake 2.688566 2.659208 101.10% xcsoar 12.42545 12.30385 100.99% linpack 0.038739 0.03803 101.86% matrix01 0.053564 0.0528 101.45% nbench 0.402867 0.395803 101.78% tblook01 0.021265 0.021015 101.19% ttsprk01 0.066384 0.065566 101.25% llvm-svn: 194459
-
Shuxin Yang authored
llvm-svn: 194457
-
Matt Arsenault authored
llvm-svn: 194456
-