| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Consolidate the code which handles string table offsets less than 999999
with the code for offsets less than 9999999. While we are here,
simplify the code by not using sprintf to generate the string.
llvm-svn: 258664
|
| |
|
|
|
|
|
|
|
| |
Use existing functionality provided in changeToUnreachable instead of
reinventing it in LoopSimplify.
No functionality change is intended.
llvm-svn: 258663
|
| |
|
|
| |
llvm-svn: 258661
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Changes in X86.td:
I set features of Intel processors in incremental form: IVB = SNB + X HSW = IVB + X ..
I added Skylake client processor and defined it's features
FeatureADX was missing on KNL
Added some new features to appropriate processors SMAP, IFMA, PREFETCHWT1, VMFUNC and others
Differential Revision: http://reviews.llvm.org/D16357
llvm-svn: 258659
|
| |
|
|
| |
llvm-svn: 258658
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16137
llvm-svn: 258657
|
| |
|
|
|
|
|
|
| |
mapping from instruction to unique command, instead store a list of which instructions each unique command corresponds to.
This simplifies the complexity of the code that tries to find further operands to merge into the unique command.
llvm-svn: 258656
|
| |
|
|
| |
llvm-svn: 258655
|
| |
|
|
|
|
|
|
|
| |
SCCP has code identical to changeToUnreachable's behavior, switch it
over to just call changeToUnreachable.
No functionality change intended.
llvm-svn: 258654
|
| |
|
|
|
|
|
|
|
| |
InstCombine and SCCP both want to remove dead code in a very particular
way but using identical means to do so. Share the code between the two.
No functionality change is intended.
llvm-svn: 258653
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A cleanup can have paths which unwind or end up in unreachable.
If there is an unreachable path *and* a path which unwinds to caller,
we would mistakenly inject an unwind path to a catchswitch on the
unreachable path. This results in a verifier assertion firing because
the cleanup unwinds to two different places: to the caller and to the
catchswitch.
This occured because we used getCleanupRetUnwindDest to determine if the
cleanuppad had no cleanuprets.
This is incorrect, getCleanupRetUnwindDest returns null for cleanuprets
which unwind to caller.
llvm-svn: 258651
|
| |
|
|
|
|
| |
The documentation for these functions is already present in the header file.
llvm-svn: 258649
|
| |
|
|
|
|
| |
The documentation for these methods is already present in the header.
llvm-svn: 258648
|
| |
|
|
|
|
| |
Nowadays the alignment attribute is not the only integer attribute.
llvm-svn: 258647
|
| |
|
|
|
|
| |
BUILD_VECTOR and UNDEF folding.
llvm-svn: 258646
|
| |
|
|
|
|
| |
Generalised mask generation / subvector extraction to use the input/output types directly instead of an if/else through all the currently accepted types.
llvm-svn: 258645
|
| |
|
|
|
|
| |
Make use of DAG.getBitcast and use clang-format to reduce number of lines (and make it more readable).
llvm-svn: 258644
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Helper so we don't have to enumerate nvptx && nvptx64 everywhere.
Reviewers: echristo
Subscribers: llvm-commits, jhen, tra
Differential Revision: http://reviews.llvm.org/D16494
llvm-svn: 258639
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously, we would just output "foo = bar" in the assembly, and then
ptxas would choke. Now we die before emitting any invalid code.
Reviewers: echristo
Subscribers: jholewinski, llvm-commits, jhen, tra
Differential Revision: http://reviews.llvm.org/D16490
llvm-svn: 258638
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Before:
.func (.param .b32 func_retval0) _ZL21__nvvm_reflect_anchorv(
)
{
After:
.func (.param .b32 func_retval0) _ZL21__nvvm_reflect_anchorv()
{
Reviewers: bkramer
Subscribers: llvm-commits, tra, jhen, echristo, jholewinski
Differential Revision: http://reviews.llvm.org/D16512
llvm-svn: 258637
|
| |
|
|
|
|
| |
ilist::size() is O(n) while ilist::empty() is O(1)
llvm-svn: 258636
|
| |
|
|
|
|
| |
Sorry for the noise.
llvm-svn: 258635
|
| |
|
|
| |
llvm-svn: 258634
|
| |
|
|
| |
llvm-svn: 258633
|
| |
|
|
| |
llvm-svn: 258631
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Update ObjectTransformLayer::addObjectSet to take the object set by
value rather than reference and pass it to the base layer with move
semantics rather than copy, to match r258185's changes to
ObjectLinkingLayer.
Update the unit test to verify that ObjectTransformLayer's signature stays
in sync with ObjectLinkingLayer's.
Reviewers: lhames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16414
llvm-svn: 258630
|
| |
|
|
|
|
|
|
| |
For the moment, this file takes way too long to run (see inline comments), but
that should be a temporary problem. The fact that the compile time is so slow
for a target that doesn't support maskmov may be a bug worth investigating too.
llvm-svn: 258629
|
| |
|
|
|
|
|
|
|
|
|
| |
target is macho.
It looks like the check for macho was accidentally dropped in r132959.
I don't have a test case, but I'll add one if anyone knows how this can
be tested.
llvm-svn: 258627
|
| |
|
|
| |
llvm-svn: 258626
|
| |
|
|
| |
llvm-svn: 258624
|
| |
|
|
| |
llvm-svn: 258623
|
| |
|
|
|
|
| |
If the INSERTPS zeroes out all the referenced elements from either of the 2 input vectors (and the input is not already UNDEF), then set that input to UNDEF to reduce dependencies.
llvm-svn: 258622
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now LIR can turn following codes into memset:
typedef struct foo {
int a;
int b;
} foo_t;
void bar(foo_t *f, unsigned n) {
for (unsigned i = 0; i < n; ++i) {
f[i].a = 0;
f[i].b = 0;
}
}
void test(foo_t *f, unsigned n) {
for (unsigned i = 0; i < n; i += 2) {
f[i] = 0;
f[i+1] = 0;
}
}
llvm-svn: 258620
|
| |
|
|
|
|
|
|
|
| |
Seems like some compilers still give unused variable warnings for
bool var = ...;
(void)var;
so I have to inline the variable.
llvm-svn: 258619
|
| |
|
|
| |
llvm-svn: 258618
|
| |
|
|
| |
llvm-svn: 258617
|
| |
|
|
|
|
| |
LLVM's BasicBlock has a single terminator, it is not valid to have two.
llvm-svn: 258616
|
| |
|
|
| |
llvm-svn: 258615
|
| |
|
|
| |
llvm-svn: 258614
|
| |
|
|
|
|
| |
This will make future test updates easier
llvm-svn: 258613
|
| |
|
|
|
|
| |
Replace tests with lrp with basic IR expansion
llvm-svn: 258612
|
| |
|
|
|
|
|
|
|
| |
Instead of RAUW with undef, replace the first non-token instruction with
unreachable.
This fixes PR26263.
llvm-svn: 258611
|
| |
|
|
|
|
| |
No functionality change is intended.
llvm-svn: 258610
|
| |
|
|
|
|
|
|
| |
PruneEH had functionality idential to removeUnwindEdge.
Consolidate around removeUnwindEdge.
No functionality change is intended.
llvm-svn: 258609
|
| |
|
|
| |
llvm-svn: 258608
|
| |
|
|
|
|
| |
This has side effects.
llvm-svn: 258607
|
| |
|
|
|
|
|
| |
This is a leftover from AMDIL that doesn't do anything
and doesn't belong here.
llvm-svn: 258606
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some of the conditions necessary to produce ccmp sequences were only
checked in recursive calls to emitConjunctionDisjunctionTree() after
some of the earlier expressions were already built. Move all checks over
to isConjunctionDisjunctionTree() so they are all checked before we
start emitting instructions.
Also rename some variable to better reflect their usage.
llvm-svn: 258605
|
| |
|
|
|
|
|
|
|
| |
isConjunctionDisjunctionTree()
This function will exhibit exponential runtime (2**n) so we should
rather use a lower limit.
llvm-svn: 258604
|
| |
|
|
| |
llvm-svn: 258603
|