| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 307583
|
|
|
|
| |
llvm-svn: 307582
|
|
|
|
|
|
|
|
|
|
|
|
| |
have been visited yet.
Reviewers: Daniel Berlin
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D34478
llvm-svn: 307581
|
|
|
|
| |
llvm-svn: 307580
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When providing the option "-polly-ast-print-accesses" Polly also prints the
memory accesses that are generated:
#pragma known-parallel
for (int c0 = 0; c0 <= 1023; c0 += 4)
#pragma simd
for (int c1 = c0; c1 <= c0 + 3; c1 += 1)
Stmt_for_body(
/* read */ &MemRef_B[0]
/* write */ MemRef_A[c1]
);
This makes writing and debugging memory layout transformations easier.
Based on a patch contributed by Thomas Lang (ETH Zurich)
llvm-svn: 307579
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This speeds-up thin-link by ~47% for large programs.
Reviewers: tejohnson
Reviewed By: tejohnson
Subscribers: sanjoy, llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D35148
llvm-svn: 307578
|
|
|
|
|
|
|
|
|
| |
Printing stacktrace from ASAN crashes with a segfault in DEDUP mode when
symbolication is missing.
Differential Revision: https://reviews.llvm.org/D34914
llvm-svn: 307577
|
|
|
|
| |
llvm-svn: 307576
|
|
|
|
|
|
|
|
| |
Immediates can be folded as long as the immediate is a vreg.
Also undo commuting instructions if it didn't fold an immediate.
llvm-svn: 307575
|
|
|
|
|
|
|
|
|
|
| |
An instruction that has an immediate operand can't reach
this point. This is only called for a freshly shrunk instruction,
which prevously couldn't have had a literal constant operand.
This was also not conservative enough since it woudl also have
had to filter other constant-like inputs like frame indexes.
llvm-svn: 307574
|
|
|
|
|
|
| |
SI is being tested by isa version in the first two if statements of the function.
llvm-svn: 307573
|
|
|
|
|
|
|
|
|
|
| |
Many of the test cases in the runtimes require LLVM's testing tools, to
facilitate this working as expected we need to have all the test targets
in the runtimes depend on all LLVM testing tools used in the runtimes.
Differential Revision: https://reviews.llvm.org/D33048
llvm-svn: 307572
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was originally reverted because of two issues.
1) Printing ANSI color escape codes even when outputting to
a file
2) Module name comparisons were failing when comparing a PDB
generated on one machine to a PDB generated on another
machine.
I attempted to fix #2 by adding command line options which let
you specify prefixes to strip from the beginning of embedded
paths, which effectively lets us specify a path to "base" each
PDB from and only compare the parts under the base. But this is
tricky because PDB paths always use Windows path syntax, even
when they are created on non-Windows hosts. A problem still
existed when constructing the prefix to strip, where we were
accidentally using a host-specific path separator instead of
a Windows path separator.
This resubmission fixes the issue on Linux (and I have verified
that the test now passes on Linux).
llvm-svn: 307571
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D35024
llvm-svn: 307569
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D35023
llvm-svn: 307568
|
|
|
|
|
|
| |
"_os_trace".
llvm-svn: 307567
|
|
|
|
|
|
| |
This fixes https://llvm.org/PR33718.
llvm-svn: 307566
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: When implementing MCFillFragment, use the size of the fragment,
rather than the size of the section.
Patch by Dan Gohman
Differential Revision: https://reviews.llvm.org/D35090
llvm-svn: 307565
|
|
|
|
| |
llvm-svn: 307564
|
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D34908
Fix PR: https://bugs.llvm.org/show_bug.cgi?id=33093
llvm-svn: 307563
|
|
|
|
|
|
| |
This syncs the cpuid functions and adds breaks to the appropriate spots in the CPU decoding switches. Also a few formatting tweaks.
llvm-svn: 307561
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: beanz, mehdi_amini
Reviewed By: beanz
Subscribers: mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D35080
llvm-svn: 307560
|
|
|
|
|
|
|
|
| |
This reverts commit 180af3fdbdb17ec35b45ec1f925fd743b28d37e1.
This is still breaking due to linux-specific path differences.
llvm-svn: 307559
|
|
|
|
|
|
| |
compatible with newer gcc.
llvm-svn: 307558
|
|
|
|
| |
llvm-svn: 307557
|
|
|
|
| |
llvm-svn: 307556
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A test was checked in on Friday that worked by checking in an
object file and PDB generated locally by MSVC, and then having
the test run lld-link on the object file and diffing LLD's PDB
against the checked in PDB.
This failed because part of the diffing algorithm involves
determining if two modules are the same, and if so drilling into
the module and diffing individual fields of the module. The
only thing we can use to make this determination though is the
"name" of the module, which is a path to where the module (obj
file) was read from on the machine where it was linked. This
fails for obvious reasons when comparing a PDB generated on one
machine to a PDB on another machine.
The fix employed here is to add two command line options to the
diff subcommand, which allow the user to specify a "binary root
path". The bin root path, if specified, is stripped from the
beginning of any embedded PDB paths. The test is updated to
specify the user's local test output directory for the left
PDB, and is hardcoded to the location where the original PDB
was created for the right PDB. This way all the equivalence
comparisons should succeed.
llvm-svn: 307555
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes https://bugs.llvm.org/show_bug.cgi?id=25454
Do not assume IRBuilder creates Instruction where it can create Value.
Do not assume idiom operands are constant, leave generalisation ot the IRBuilder.
Differential Revision: https://reviews.llvm.org/D35114
llvm-svn: 307554
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use as an index register for X-Form loads/stores.
For this example:
float test (int *arr) {
return arr[2];
}
We currently generate the following code:
li r4, 8
lxsiwax f0, r3, r4
xscvsxdsp f1, f0
With this patch, we will now generate:
addi r3, r3, 8
lxsiwax f0, 0, r3
xscvsxdsp f1, f0
Originally reported in: https://bugs.llvm.org/show_bug.cgi?id=27204
Differential Revision: https://reviews.llvm.org/D35027
llvm-svn: 307553
|
|
|
|
|
|
|
|
|
|
|
| |
(PR28573).
The new version of the model is definitely faster.
Differential Revision:
https://reviews.llvm.org/D35198
llvm-svn: 307552
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: White spaces in file names are causing Phabricator/SVN to crash.
Reviewers: bkramer
Subscribers: bogner, cfe-commits
Differential Revision: https://reviews.llvm.org/D35203
llvm-svn: 307551
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: White spaces in file names are causing Phabricator/SVN to crash.
Reviewers: bkramer
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35206
llvm-svn: 307550
|
|
|
|
|
|
| |
pseudo-op: `.').
llvm-svn: 307549
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D35173
llvm-svn: 307548
|
|
|
|
| |
llvm-svn: 307547
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Memory accesses offset from frame indices may alias, e.g., we
may merge write from function arguments passed on the stack when they
are contiguous. As a result, when checking aliasing, we consider the
underlying frame index's offset from the stack pointer.
Static allocs are realized as stack objects in SelectionDAG, but its
offset is not set until post-DAG causing DAGCombiner's alias check to
consider access to static allocas to frequently alias. Modify isAlias
to consider access between static allocas and access from other frame
objects to be considered aliasing.
Many test changes are included here. Most are fixes for tests which
indirectly relied on our aliasing ability and needed to be modified to
preserve their original intent.
The remaining tests have minor improvements due to relaxed
ordering. The exception is CodeGen/X86/2011-10-19-widen_vselect.ll
which has a minor degradation dispite though the pre-legalized DAG is
improved.
Reviewers: rnk, mkuper, jonpa, hfinkel, uweigand
Reviewed By: rnk
Subscribers: sdardis, nemanjai, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D33345
llvm-svn: 307546
|
|
|
|
|
|
|
|
| |
ThreadIgnoreBegin/ThreadIgnoreSyncBegin, NFC.
Differential Revision: https://reviews.llvm.org/D35134
llvm-svn: 307545
|
|
|
|
|
|
|
|
| |
This patch defines the TSan memory map and offsets for Darwin on AArch64.
Differential Revision: https://reviews.llvm.org/D35147
llvm-svn: 307544
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This speeds-up thin-link for ~29% for large programs.
Reviewers: tejohnson
Reviewed By: tejohnson
Subscribers: grandinj, sanjoy, llvm-commits
Differential Revision: https://reviews.llvm.org/D35145
llvm-svn: 307543
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When unrolling under multiple exits which is under off-by-default option,
the assert that checks for VMap entry in loop exit values is too strong.
(assert if VMap entry did not exist, the value should be a
constant). However, values derived from
constants or from values outside loop, does not have a VMap entry too.
Removed the assert and added a testcase showcasing the property for
non-constant values.
llvm-svn: 307542
|
|
|
|
|
|
|
|
| |
This patch ports the assembly file implementing TSan's setjmp support to AArch64 on Darwin.
Differential Revision: https://reviews.llvm.org/D35143
llvm-svn: 307541
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D35154
llvm-svn: 307540
|
|
|
|
| |
llvm-svn: 307539
|
|
|
|
| |
llvm-svn: 307538
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D35157
llvm-svn: 307537
|
|
|
|
|
|
| |
The DebugLogging argument was unused in the EP callbacks registration.
llvm-svn: 307536
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: In this case, users currently get a confusing type error. Make the error message more obvious.
Reviewers: klimek
Reviewed By: klimek
Differential Revision: https://reviews.llvm.org/D35197
llvm-svn: 307535
|
|
|
|
|
|
|
| |
Escaping lambda by-reference capture of local variable caused a dangling
reference.
llvm-svn: 307534
|
|
|
|
| |
llvm-svn: 307533
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch adds a callback registration API to the PassBuilder,
enabling registering out-of-tree passes with it.
Through the Callback API, callers may register callbacks with the
various stages at which passes are added into pass managers, including
parsing of a pass pipeline as well as at extension points within the
default -O pipelines.
Registering utilities like `require<>` and `invalidate<>` needs to be
handled manually by the caller, but a helper is provided.
Additionally, adding passes at pipeline extension points is exposed
through the opt tool. This patch adds a `-passes-ep-X` commandline
option for every extension point X, which opt parses into pipelines
inserted into that extension point.
Reviewers: chandlerc
Reviewed By: chandlerc
Subscribers: lksbhm, grosser, davide, mehdi_amini, llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D33464
llvm-svn: 307532
|