- May 19, 2016
-
-
Artem Tamazov authored
Fixes for MUBUF_Atomic instructions to make operand list valid: - For RTN insns, make a copy of $vdata_in operand as $vdata. - Do not add operand for GLC, it is hardcoded and comes as a token. Workaround to avoid adding multiple default optional operands. Tests added. Differential Revision: http://reviews.llvm.org/D20257 llvm-svn: 270049
-
Zoran Jovanovic authored
Differential Revision: http://reviews.llvm.org/D15526 llvm-svn: 270048
-
Simon Pilgrim authored
llvm-svn: 270046
-
Simon Pilgrim authored
llvm-svn: 270041
-
Daniel Sanders authored
Summary: Partially fixes PR27458 Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D20330 llvm-svn: 270037
-
Andrey Turetskiy authored
Enable "Remove Redundant LEAs" part of the LEA optimization pass for -O2. This gives 6.4% performance improve on Broadwell on nnet benchmark from Coremark-pro. There is no significant effect on other benchmarks (Geekbench, Spec2000, Spec2006). Differential Revision: http://reviews.llvm.org/D19659 llvm-svn: 270036
-
Zlatko Buljan authored
Differential Revision: http://reviews.llvm.org/D18352 llvm-svn: 270030
-
Craig Topper authored
[X86] Generalize and combine some similar type constraints and node types. No changes to the isel table size so the separation wasn't buying us anything. llvm-svn: 270026
-
Craig Topper authored
llvm-svn: 270025
-
Peter Collingbourne authored
llvm-svn: 270023
-
Vedant Kumar authored
Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. - Remove the base ProfError class to work around an MSVC ICE. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 270020
-
Sanjoy Das authored
`ConstantRange::getEquivalentICmp` is more general, and better factored. llvm-svn: 270019
-
Sanjoy Das authored
Currently only its unit test uses it, but this will be used in a later change to simplify some logic in the GuardWidening pass. llvm-svn: 270018
-
Dan Gohman authored
llvm-svn: 270017
-
Craig Topper authored
llvm-svn: 270013
-
Craig Topper authored
[AVX512] Strengthen type constraints for VFIXUPIMM patterns and combine the type constraints for vector and scalar. llvm-svn: 270012
-
Dan Gohman authored
llvm-svn: 270011
-
Eugene Zelenko authored
Fix some Clang-tidy modernize-use-bool-literals and Include What You Use warnings in examples; other minor fixes. Differential revision: http://reviews.llvm.org/D20397 llvm-svn: 270008
-
Sanjay Patel authored
llvm-svn: 270007
-
Chad Rosier authored
llvm-svn: 270003
-
Matt Arsenault authored
llvm-svn: 270002
-
Chris Bieneman authored
This refactoring is to reduce code duplication between the 32-bit and 64-bit code paths. This refactoring will also make the special casing for other data after load commands cleaner. llvm-svn: 270001
-
Matt Arsenault authored
If the load has a pointer type, we don't want to change its type. llvm-svn: 270000
-
Sanjoy Das authored
PredicatePassProbability is a better name for what LikelyBranchWeight was trying to express. llvm-svn: 269999
-
Sanjoy Das authored
Summary: Implement guard widening in LLVM. Description from GuardWidening.cpp: The semantics of the `@llvm.experimental.guard` intrinsic lets LLVM transform it so that it fails more often that it did before the transform. This optimization is called "widening" and can be used hoist and common runtime checks in situations like these: ``` %cmp0 = 7 u< Length call @llvm.experimental.guard(i1 %cmp0) [ "deopt"(...) ] call @unknown_side_effects() %cmp1 = 9 u< Length call @llvm.experimental.guard(i1 %cmp1) [ "deopt"(...) ] ... ``` to ``` %cmp0 = 9 u< Length call @llvm.experimental.guard(i1 %cmp0) [ "deopt"(...) ] call @unknown_side_effects() ... ``` If `%cmp0` is false, `@llvm.experimental.guard` will "deoptimize" back to a generic implementation of the same function, which will have the correct semantics from that point onward. It is always _legal_ to deoptimize (so replacing `%cmp0` with false is "correct"), though it may not always be profitable to do so. NB! This pass is a work in progress. It hasn't been tuned to be "production ready" yet. It is known to have quadriatic running time and will not scale to large numbers of guards Reviewers: reames, atrick, bogner, apilipenko, nlewycky Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D20143 llvm-svn: 269997
-
http://reviews.llvm.org/D19948Dehao Chen authored
Summary: Set default branch weight to 1:1 if one of the branch has profile missing when simplifying CFG. Reviewers: spatel, davidxl Subscribers: danielcdh, llvm-commits Differential Revision: http://reviews.llvm.org/D20307 llvm-svn: 269995
-
Haicheng Wu authored
skipFunction() is called twice. Differential Revision: http://reviews.llvm.org/D20377 llvm-svn: 269994
-
Richard Smith authored
- glibc is dynamically linked, and - libgcc_s is unavailable (for instance, another library is being used to provide the compiler runtime or libgcc is statically linked), and - the target is x86_64. If we run backtrace() and it fails to find any stack frames, try using _Unwind_Backtrace instead if available. llvm-svn: 269992
-
Sanjay Patel authored
llvm-svn: 269990
-
Rafael Espindola authored
Having an enum member named Default is quite confusing: Is it distinct from the others? This patch removes that member and instead uses Optional<Reloc> in places where we have a user input that still hasn't been maped to the default value, which is now clear has no be one of the remaining 3 options. llvm-svn: 269988
-
- May 18, 2016
-
-
Jacques Pienaar authored
isReturn() was returning different values with and without -g which led to different code being generated. Change isFlagSettingInstruction to query an instruction's effect on SR instead. llvm-svn: 269986
-
Michael Zolotukhin authored
[LoopUnrollAnalyzer] Take into account cost of instructions controlling branches, along with their operands. Previously, we didn't add their and their operands cost, which could've resulted in unrolling loops for no actual benefit. llvm-svn: 269985
-
Sanjay Patel authored
llvm-svn: 269977
-
Dan Gohman authored
llvm-svn: 269976
-
Dehao Chen authored
llvm-svn: 269974
-
Jan Vesely authored
Use signed division otherwise all back jumps fail the check Fixes regression introduced in r269951 Differential Revision: http://reviews.llvm.org/D20380 llvm-svn: 269972
-
Krzysztof Parzyszek authored
When looking for an available spill slot, the register scavenger would stop after finding the first one with no register assigned to it. That slot may have size and alignment that do not meet the requirements of the register that is to be spilled. Instead, find an available slot that is the closest in size and alignment to one that is needed to spill a register from RC. Differential Revision: http://reviews.llvm.org/D20295 llvm-svn: 269969
-
Simon Pilgrim authored
llvm-svn: 269966
-
Chad Rosier authored
llvm-svn: 269963
-