| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
backedge-taken count in profiliing data.
llvm-svn: 230619
|
| |
|
|
|
|
|
|
|
| |
IRCE can now split the iteration space for loops like:
for (i = n; i >= 0; i--)
a[i + k] = 42; // bounds check on access
llvm-svn: 230618
|
| |
|
|
|
|
| |
This ordering matches that of DAG.getNode.
llvm-svn: 230617
|
| |
|
|
|
|
| |
headers. We use appropriate shuffle vector instead.
llvm-svn: 230616
|
| |
|
|
| |
llvm-svn: 230615
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a linker crash (found out while testing --gc-sections,
testcase provided by Rafael Avila de Espindola).
While this behaviour was found while testing ELF, it' not necessarily
ELF specific and this change is (apparently) harmless on all the
other drivers.
Differential Revision: D7823
Reviewed by: ruiu
llvm-svn: 230614
|
| |
|
|
|
|
| |
Apparently we can use this now!
llvm-svn: 230613
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add `CHECK-SAME`, which requires that the pattern matches on the *same*
line as the previous `CHECK`/`CHECK-NEXT` -- in other words, no newline
is allowed in the skipped region. This is similar to `CHECK-NEXT`,
which requires exactly 1 newline in the skipped region.
My motivation is to simplify checking the long lines of LLVM assembly
for the new debug info hierarchy. This allows CHECK sequences like the
following:
CHECK: ![[REF]] = !SomeMDNode(
CHECK-SAME: file: ![[FILE:[0-9]+]]
CHECK-SAME: otherField: 93{{[,)]}}
which is equivalent to:
CHECK: ![[REF]] = !SomeMDNode({{.*}}file: ![[FILE:[0-9]+]]{{.*}}otherField: 93{{[,)]}}
While this example just has two fields, many nodes in debug info have
more than that. `CHECK-SAME` will keep the logic easy to follow.
Morever, it enables interleaving `CHECK-NOT`s without allowing newlines.
Consider the following:
CHECK: ![[REF]] = !SomeMDNode(
CHECK-SAME: file: ![[FILE:[0-9]+]]
CHECK-NOT: unexpectedField:
CHECK-SAME: otherField: 93{{[,)]}}
CHECK-NOT: otherUnexpectedField:
CHECK-SAME: )
which doesn't seem to have an equivalent `CHECK` line.
llvm-svn: 230612
|
| |
|
|
|
|
|
|
|
|
|
|
| |
lib/headers paths
There is no supported toolchain which provides headers / libs / object
files specific to the mips32r[3|5] and mips64r[3|5] ISA. So select "r2"
specific folders when they are available.
http://reviews.llvm.org/D7879
llvm-svn: 230611
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the newly minted `DIImportedEntity` default constructor (r230609)
rather than explicitly specifying `nullptr`. The latter will become
ambiguous when the new debug info hierarchy is committed, since we'll
have both of the following:
explicit DIImportedEntity(const MDNode *);
DIImportedEntity(const MDImportedEntity *);
(Currently we just have the former.)
A default constructor is just as clear.
llvm-svn: 230610
|
| |
|
|
|
|
|
| |
Add a default constructor for `DIImportedEntity`, to be used in clang in
a follow-up.
llvm-svn: 230609
|
| |
|
|
|
|
|
|
| |
Also remove the somewhat misleading initializers from
VectorizationFactor and VectorizationInterleave. They will get
initialized with the default ctor since no cl::init is provided.
llvm-svn: 230608
|
| |
|
|
| |
llvm-svn: 230607
|
| |
|
|
|
|
|
| |
This cleans up a set of -Wsign-conversion, -Wint-conversion, and -Wformat
warnings from GCC 4.9.2 on Linux. NFC.
llvm-svn: 230606
|
| |
|
|
|
|
|
|
| |
HostInfoAndroid::ComputeSupportExeDirectory.
http://reviews.llvm.org/D7876
llvm-svn: 230604
|
| |
|
|
|
|
|
|
|
|
| |
Fix for PR22017. Integer template arguments are automatically bit extended to
the size of the integer type. In template diffing, evaluated expressions were
not having their results extending, leading to comparing two APSInt's with
different widths. Apply the proper bit extending when evaluating template
arguments. This mainly affected bool template arguments.
llvm-svn: 230603
|
| |
|
|
|
|
|
|
| |
happens to be a Python keyword, then prefix the filename with an _ (e.g. a module named def will load _def.py)
Fixes rdar://13893506
llvm-svn: 230602
|
| |
|
|
|
|
|
|
| |
When I originally committed the statepoint docs, I left placeholders for example IR fragments. I'm finally getting around to filling those in.
I also added IR fragments to illustrate the usage of the PlaceSafepoints pass while I was at it.
llvm-svn: 230601
|
| |
|
|
|
|
|
|
|
|
|
| |
are now:
FrontendTool -> StaticAnalyzer/Frontend -> Frontend -> StaticAnalyzer/Core
The final dependency edge here is probably removable: AnalyzerOptions (and
Analyses.def) should probably live in Basic rather than StaticAnalyzer/Core.
llvm-svn: 230600
|
| |
|
|
| |
llvm-svn: 230599
|
| |
|
|
|
|
| |
They don't conflict with MSVC flags.
llvm-svn: 230598
|
| |
|
|
|
|
|
|
| |
We'd diagnose an __assume expression which contained a function call.
This would result in us wrongly returning ExprError, causing mysterious
failures later on.
llvm-svn: 230597
|
| |
|
|
|
|
|
| |
It still prints "Assembling path/to/X86CompilationCallback_Win64.asm",
but linking does the same thing.
llvm-svn: 230596
|
| |
|
|
| |
llvm-svn: 230595
|
| |
|
|
| |
llvm-svn: 230594
|
| |
|
|
| |
llvm-svn: 230593
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Executors can be specified at configure time by using the -DLIBCXX_EXECUTOR=""
option. Examples include:
$ cmake <other_flags> -DLIBCXX_EXECUTOR="TimeoutExecutor(30,LocalExecutor())"
This runs individual tests with a maximum duration
$ cmake <other_flags> -DLIBCXX_EXECUTOR="SSHExecutor('hostname','username')"
This runs tests on a remote target, using scp to shuttle binaries to the
target, and ssh to invoke commands there.
$ cmake <other_flags> -DLIBCXX_EXECUTOR="PrefixExecutor('/path/to/run/script',LocalExecutor())"
This assumes the script knows how to copy run the executables passed to it,
and allows for the ultimate control. This is useful for running things
inside emulators like Valgrind & QEMU.
TODO: This doesn't claim to support ShTest tests yet, that will take a bit more
thought & finagling (I'm still not sure how to orchestrate copy-in for those cases.
I've also punted on what to do about tests that read data files. The testsuite
has several tests that need to read *.dat files placed next to them, and
currently those aren't copied over when using, say, an SSHExecutor. The
affected tests are:
libc++ :: std/input.output/file.streams/fstreams/filebuf.virtuals/pbackfail.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/filebuf.virtuals/underflow.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.assign/member_swap.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.assign/move_assign.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.assign/nonmember_swap.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.cons/move.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.members/close.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.members/open_pointer.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.members/open_string.pass.cpp
libc++ :: std/input.output/file.streams/fstreams/ifstream.members/rdbuf.pass.cpp
libc++ :: std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp
libc++ :: std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp
Note: One thing to watch out for when using the SSHExecutor for cross-testing is
that you'll also want to specify a TargetInfo object (so that the host's
features aren't used for available-features checks and flags setup).
http://reviews.llvm.org/D7380
llvm-svn: 230592
|
| |
|
|
|
|
|
|
|
|
| |
Use the IRBuilder helpers for gc.statepoint and gc.result, instead of
coding the construction by hand. Note that the gc.statepoint IRBuilder
handles only CallInst, not InvokeInst; retain that part of hand-coding.
Differential Revision: http://reviews.llvm.org/D7518
llvm-svn: 230591
|
| |
|
|
| |
llvm-svn: 230590
|
| |
|
|
| |
llvm-svn: 230589
|
| |
|
|
| |
llvm-svn: 230588
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently -fms-extensions controls this behavior, which doesn't make
much sense. It means we can't identify what is and isn't a system header
when compiling our own preprocessed output, because #line doesn't
represent this information.
If someone is feeding Clang's preprocessed output to another compiler,
they can use this flag.
Fixes PR20553.
Reviewers: rsmith
Differential Revision: http://reviews.llvm.org/D5217
llvm-svn: 230587
|
| |
|
|
|
|
| |
shouldn't depend on LLVM IR.
llvm-svn: 230586
|
| |
|
|
|
|
|
|
|
|
| |
Explanation: This function is in TargetLowering because it uses
RegClassForVT which would need to be moved to TargetRegisterInfo
and would necessitate moving isTypeLegal over as well - a massive
change that would just require TargetLowering having a TargetRegisterInfo
class member that it would use.
llvm-svn: 230585
|
| |
|
|
| |
llvm-svn: 230584
|
| |
|
|
|
|
|
|
|
| |
This required plumbing a TargetRegisterInfo through computeRegisterProperties
and into findRepresentativeClass which uses it for register class
iteration. This required passing a subtarget into a few target specific
initializations of TargetLowering.
llvm-svn: 230583
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D7644
llvm-svn: 230582
|
| |
|
|
| |
llvm-svn: 230581
|
| |
|
|
|
|
| |
Do not declare sized deallocation functions dependently on whether it is found in global scope. Instead, enforce the branching in emitted code by (1) declaring the functions extern_weak and (2) emitting sized delete expressions as a branching between both forms delete.
llvm-svn: 230580
|
| |
|
|
| |
llvm-svn: 230579
|
| |
|
|
| |
llvm-svn: 230578
|
| |
|
|
|
|
| |
driver into CC1 for now.
llvm-svn: 230577
|
| |
|
|
|
|
|
|
| |
Add a brief section linking to the experimental statepoint intrinsics analogous to the one we have linking to patchpoint.
While I'm here, cleanup some wording about what the gc "name" attribute actually means. It's not the name of a *collector* it's the name of the *strategy* which may be compatible with multiple collectors.
llvm-svn: 230576
|
| |
|
|
| |
llvm-svn: 230574
|
| |
|
|
|
|
| |
it's fixed. PR22699
llvm-svn: 230573
|
| |
|
|
| |
llvm-svn: 230572
|
| |
|
|
| |
llvm-svn: 230571
|
| |
|
|
| |
llvm-svn: 230570
|
| |
|
|
| |
llvm-svn: 230569
|
| |
|
|
|
|
|
| |
This lets us compile programs which make use of exceptional constructs
statically without executing any of them dynamically.
llvm-svn: 230568
|