| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
if AVX512(for FR32X/FR64) or VLX(for VR128X/VR256) is supported. This is a minimal requirement to be able to allocate all 32 registers.
llvm-svn: 277319
|
| |
|
|
|
|
| |
getLoadStoreRegOpcode. No functional change intended.
llvm-svn: 277318
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They seem to trigger an LSan failure:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/15140/steps/check-llvm%20asan/logs/stdio
Revert "Add the tests for r277313"
This reverts commit r277314.
Revert "CodeExtractor : Add ability to preserve profile data."
This reverts commit r277313.
llvm-svn: 277317
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function.
When extracting a set of blocks make sure to inherit all of the target
dependent attributes to make sure that the function will be valid for
lowering. One example is the "target-features" attribute for x86, if the
extracted region has functionality that relies on a specific feature it
will fail to be lowered.
This also allows for extracted functions to be valid for inlining, at
least back into the parent function, as the target attributes are tested
when inlining for compatibility.
Patch by River Riddle!
Differential Revision: https://reviews.llvm.org/D22713
llvm-svn: 277315
|
| |
|
|
|
|
|
|
|
|
|
| |
Added ability to estimate the entry count of the extracted function and
the branch probabilities of the exit branches.
Patch by River Riddle!
Differential Revision: https://reviews.llvm.org/D22744
llvm-svn: 277313
|
| |
|
|
|
|
| |
before removing old ones
llvm-svn: 277309
|
| |
|
|
|
|
| |
classes instead of manually listing individual classes.
llvm-svn: 277306
|
| |
|
|
|
|
| |
getLoadStoreRegOpcode if VLX is supported.
llvm-svn: 277305
|
| |
|
|
|
|
| |
pass and update tests.
llvm-svn: 277304
|
| |
|
|
|
|
| |
switch. No functional change intended.
llvm-svn: 277303
|
| |
|
|
|
|
| |
regular switch which already tried to handle it, but was unreachable. This has the added benefit of enabling aligned loads/stores if the stack is aligned.
llvm-svn: 277302
|
| |
|
|
| |
llvm-svn: 277301
|
| |
|
|
|
|
|
|
| |
As discussed on PR14593, this patch adds support for lowering to SHLD/SHRD from the patterns generated by DAGTypeLegalizer::ExpandShiftWithKnownAmountBit.
Differential Revision: https://reviews.llvm.org/D23000
llvm-svn: 277299
|
| |
|
|
|
|
| |
Patch by Bandzi Michal!
llvm-svn: 277298
|
| |
|
|
|
|
|
|
| |
We had import_directory_table_entry and
coff_import_directory_table_entry, remove one. Also, factor out the
logic which determins if a descriptor is a terminator.
llvm-svn: 277296
|
| |
|
|
|
|
|
|
| |
unless DQI instructions are supported. Same for ANDN, OR, and XOR.
Thanks to Igor Breger for pointing out my mistake.
llvm-svn: 277292
|
| |
|
|
| |
llvm-svn: 277290
|
| |
|
|
|
|
|
|
| |
Removed AssertZext node, which was inserted between X86ISD::SETCC and "truncate to i1".
Differential Revision: https://reviews.llvm.org/D22850
llvm-svn: 277289
|
| |
|
|
| |
llvm-svn: 277285
|
| |
|
|
| |
llvm-svn: 277284
|
| |
|
|
| |
llvm-svn: 277283
|
| |
|
|
| |
llvm-svn: 277280
|
| |
|
|
| |
llvm-svn: 277279
|
| |
|
|
|
|
|
|
| |
as well as 32-bit
The 2i32-2i64 legalization means that we can use the slightly quicker double bits + fptrunc approach for the same results
llvm-svn: 277271
|
| |
|
|
|
|
|
|
| |
negative values.
Found by ubsan.
llvm-svn: 277268
|
| |
|
|
|
|
| |
Found by asan -fsanitize-address-use-after-scope.
llvm-svn: 277266
|
| |
|
|
|
|
| |
Found by asan -fsanitize-address-use-after-scope.
llvm-svn: 277265
|
| |
|
|
|
|
|
| |
This should really be true for any immediate, not just
inline ones.
llvm-svn: 277260
|
| |
|
|
| |
llvm-svn: 277259
|
| |
|
|
| |
llvm-svn: 277258
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When performing cmp for EQ/NE and the operand is sign extended, we can
avoid the truncaton if the bits to be tested are no less than origianl
bits.
Reviewers: eli.friedman
Subscribers: eli.friedman, aemerson, nemanjai, t.p.northover, llvm-commits
Differential Revision: https://reviews.llvm.org/D22933
llvm-svn: 277252
|
| |
|
|
|
|
| |
Easiest instruction ever!
llvm-svn: 277225
|
| |
|
|
|
|
|
|
| |
These come in two variants for now: G_INTRINSIC and G_INTRINSIC_W_SIDE_EFFECTS.
We may decide to split the latter up with finer-grained restrictions later, if
necessary.
llvm-svn: 277224
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
malformed-archives.test
in r277177 and added back this test which was deleted in r277196 while
I tracked down these problems.
Changed from constructing Twine's to std::string's as Twine's don't work
across statements. Also removed a few unneeded Twine() constructions.
Fix the write_escaped() calls to not pass the unintended second argument
fixing the warning on the ld-x86_64-win7 bot.
llvm-svn: 277223
|
| |
|
|
| |
llvm-svn: 277220
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Up until now, we only had code to match PSADBW patterns that look like what
comes out of the loop vectorizer - a partial reduction inside the loop body
that gets fed into a horizontal operation in a different basic block.
This adds support for straight-line patterns, like those generated by the
SLP vectorizer.
Differential Revision: https://reviews.llvm.org/D22889
llvm-svn: 277219
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D22974
llvm-svn: 277216
|
| |
|
|
|
|
| |
Support for lowering to VBROADCASTF128 etc. in D22460 was not correctly ensuring that the only users of the 128-bit vector load were the insertions of the vector into the lower/upper subvectors.
llvm-svn: 277214
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously this change was submitted from a Windows machine, so
changes made to the case of filenames and directory names did
not survive the commit, and as a result the CMake source file
names and the on-disk file names did not match on case-sensitive
file systems.
I'm resubmitting this patch from a Linux system, which hopefully
allows the case changes to make it through unfettered.
llvm-svn: 277213
|
| |
|
|
|
|
|
| |
This will be used during GlobalISel, where we need a more robust and readable
way to write tests than a simple immediate ID.
llvm-svn: 277209
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LoopUnroll is a loop pass, so the analysis of OptimizationRemarkEmitter
is added to the common function analysis passes that loop passes
depend on.
The BFI and indirectly BPI used in this pass is computed lazily so no
overhead should be observed unless -pass-remarks-with-hotness is used.
This is how the patch affects the O3 pipeline:
Dominator Tree Construction
Natural Loop Information
Canonicalize natural loops
Loop-Closed SSA Form Pass
Basic Alias Analysis (stateless AA impl)
Function Alias Analysis Results
Scalar Evolution Analysis
+ Lazy Branch Probability Analysis
+ Lazy Block Frequency Analysis
+ Optimization Remark Emitter
Loop Pass Manager
Rotate Loops
Loop Invariant Code Motion
Unswitch loops
Simplify the CFG
Dominator Tree Construction
Basic Alias Analysis (stateless AA impl)
Function Alias Analysis Results
Combine redundant instructions
Natural Loop Information
Canonicalize natural loops
Loop-Closed SSA Form Pass
Scalar Evolution Analysis
+ Lazy Branch Probability Analysis
+ Lazy Block Frequency Analysis
+ Optimization Remark Emitter
Loop Pass Manager
Induction Variable Simplification
Recognize loop idioms
Delete dead loops
Unroll loops
...
llvm-svn: 277203
|
| |
|
|
| |
llvm-svn: 277198
|
| |
|
|
|
|
|
|
|
| |
We used the wrong type for constructing a zero vector element which led
to type mismatches.
This fixes PR28771.
llvm-svn: 277197
|
| |
|
|
| |
llvm-svn: 277195
|
| |
|
|
|
|
| |
This reverts commit 4d1557ffac41e079bcb1abbcf04f512474dcd6fe.
llvm-svn: 277194
|
| |
|
|
|
|
|
|
| |
In a previous patch, it was suggested to use all caps instead of
rolling caps for initialisms, so this patch changes everything
to do this.
llvm-svn: 277190
|
| |
|
|
|
|
|
|
| |
Patch by Sunita Marathe
Third try, now following fixes to MSan to handle mempcy in such a way that this commit won't break the MSan buildbots. (Thanks, Evegenii!)
llvm-svn: 277189
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 277188
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following pattern was being layed out poorly:
A
/ \
B C
/ \ / \
D E ? (Doesn't matter)
Where A->B is far more likely than A->C, and prob(B->D) = prob(B->E)
The current algorithm gives:
A,B,C,E (D goes on worklist)
It does this even if C has a frequency count of 0. This patch
adjusts the layout calculation so that if freq(B->E) >> freq(C->E)
then we go ahead and layout E rather than C. Fallthrough half the time
is better than fallthrough never, or fallthrough very rarely. The
resulting layout is:
A,B,E, (C and D are in a worklist)
llvm-svn: 277187
|
| |
|
|
|
|
|
| |
Just the basic equivalent to DAG's condbr for now, we'll get to things like
br_cc when we start doing more legalization.
llvm-svn: 277184
|