Evgeniy Stepanov [Thu, 26 Feb 2015 15:59:30 +0000 (15:59 +0000)]
[msan] Change track-origins default mode from 1 to 2.
Change -fsanitize-memory-track-origins to be equivalent to
-fsanitize-memory-track-origins=2.
Track-origins=2 provides a lot more detailed reports at the cost of
some additional slowdown (ranging from none to, sometimes, 3x; ~3% average on
SPEC2006).
llvm-svn: 230644
Jonathan Roelofs [Thu, 26 Feb 2015 15:55:01 +0000 (15:55 +0000)]
Add remote testing support to the lit config
Now that the corresponding support in libcxx has landed (r230592), adding
support here is pretty simple.
llvm-svn: 230643
Tobias Grosser [Thu, 26 Feb 2015 15:55:00 +0000 (15:55 +0000)]
Update comment
Suggest-by: Johannes Doerfert
llvm-svn: 230642
Aaron Watry [Thu, 26 Feb 2015 15:42:00 +0000 (15:42 +0000)]
libclc/math: Add cospi
Ported from the libclc/amd-builtins branch
v2: Rename sincos_f_piby4 to __libclc__sincosf_piby4
Add cospi(double) implementation instead of using llvm.cos
Notes:
The sincosD_piby4.h file is mostly the same as the builtin implementation
released by AMD. The inline attribute declaration is changed, and M_PI is
used instead of a constant double. Otherwise, the only difference is that
the header explicitly enables the fp64 pragma.
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Jeroen Ketema <j.ketema@imperial.ac.uk>
CC: Tom Stellard <tom@stellard.net>
CC: Matt Arsenault <Matthew.Arsenault@amd.com>
llvm-svn: 230641
Tobias Grosser [Thu, 26 Feb 2015 15:21:10 +0000 (15:21 +0000)]
Use isl_ast_expr_call to create run-time checks
isl recently introduced a new interface to create run-time checks from
constraint sets. Use this interface to simplify our run-time check generation.
llvm-svn: 230640
Evgeniy Stepanov [Thu, 26 Feb 2015 15:19:33 +0000 (15:19 +0000)]
[msan] Fix MsanTest to pass in track_origins=2 mode.
llvm-svn: 230639
Bruno Cardoso Lopes [Thu, 26 Feb 2015 15:16:09 +0000 (15:16 +0000)]
[X86][MMX] Fix a typo in a couple of tests
llvm-svn: 230638
Bruno Cardoso Lopes [Thu, 26 Feb 2015 15:10:38 +0000 (15:10 +0000)]
[X86][MMX] Remove widening experimental flag from MMX tests.
Turns out that after the past MMX commits, we don't need to rely on this
flag to get better codegen for MMX. Also update the tests to become
triple neutral.
llvm-svn: 230637
Tobias Grosser [Thu, 26 Feb 2015 15:08:35 +0000 (15:08 +0000)]
Update isl to
88d60cfe1 'add isl_ast_expr_call'
For Polly the two interesting changes are short_circuit && and || AST
expressions as well as the introduction of isl_ast_build_expr_from_set,
a well defined interface to compute ast expressions from constraint sets.
llvm-svn: 230636
Michael Kuperstein [Thu, 26 Feb 2015 14:30:09 +0000 (14:30 +0000)]
[X86][Haswell][SchedModel] Fix WriteMULm latency.
The latency for the WriteMULm class was set to 4, which is actually lower than the latency for WriteMULr (5).
A better estimate would be 4 added to WriteMULr, that is, 9.
llvm-svn: 230634
Sergey Matveev [Thu, 26 Feb 2015 14:25:25 +0000 (14:25 +0000)]
[lsan] Fix indent.
llvm-svn: 230633
Hal Finkel [Thu, 26 Feb 2015 14:22:41 +0000 (14:22 +0000)]
[InstCombine] Add a test for altivec load/store intrinsic simplification
InstCombine has logic to convert aligned Altivec load/store intrinsics into
regular loads and stores. Unfortunately, there seems to be no regression test
covering this behavior. Adding one...
llvm-svn: 230632
Sergey Matveev [Thu, 26 Feb 2015 14:01:08 +0000 (14:01 +0000)]
LSan: fix a deadlock caused by dl_iterate_phdr().
Wrap the StopTheWorld call in a dl_iterate_phdr() callback. This ensures that no
other threads are holding the libdl lock, and we can safely reenter it in the
tracer thread.
llvm-svn: 230631
Ilia K [Thu, 26 Feb 2015 13:28:58 +0000 (13:28 +0000)]
Fix usage of shared_ptr for array which may cause a undefined behaviour (use unique_ptr instead)
llvm-svn: 230630
Robert Flack [Thu, 26 Feb 2015 13:03:57 +0000 (13:03 +0000)]
Test commit - fix typo.
llvm-svn: 230629
Vladimir Medic [Thu, 26 Feb 2015 12:29:48 +0000 (12:29 +0000)]
Replace obsolete -mattr=n64 command line option with -target-abi=n64. No functional changes.
llvm-svn: 230628
Daniel Jasper [Thu, 26 Feb 2015 11:46:29 +0000 (11:46 +0000)]
clang-format: Make braced list formatting more consistent.
Before:
Aaaa
aaaaaaaaaaa{
{
a, // +1 indent weird.
b, // trailing comma signals one per line.
}, // trailing comma signals one per line.
};
After:
Aaaa
aaaaaaaaaaa{
{
a, // better!?
b, // trailing comma signals one per line.
}, // trailing comma signals one per line.
};
Interesting that this apparently was entirely untested :-(.
llvm-svn: 230627
Tamas Berghammer [Thu, 26 Feb 2015 11:37:21 +0000 (11:37 +0000)]
Increase default packet timeout for android to 20s
Differential revision: http://reviews.llvm.org/D7853
llvm-svn: 230626
Daniel Jasper [Thu, 26 Feb 2015 11:30:50 +0000 (11:30 +0000)]
clang-format: Fix space of arrays of pointers to templated types.
Before:
vector<int>(*foo_)[6];
After:
vector<int> (*foo_)[6];
llvm-svn: 230625
Johannes Doerfert [Thu, 26 Feb 2015 11:09:24 +0000 (11:09 +0000)]
Allow non-affine control flow by default
With the patches r230325, r230329 and r230340 we can handle non-affine
control flow in (loop-free) subregions. As all LLVM test-suite tests pass and
we get ~20% more non-trivial SCoPs, we activate it now by default.
llvm-svn: 230624
Chandler Carruth [Thu, 26 Feb 2015 11:00:40 +0000 (11:00 +0000)]
[x86] Sink the single-input v8i16 lowering code that is actually
formulaic into the top v8i16 lowering routine.
This makes the generalized lowering a completely general and single path
lowering which will allow generalizing it in turn for multiple 128-bit
lanes.
llvm-svn: 230623
Chandler Carruth [Thu, 26 Feb 2015 10:37:01 +0000 (10:37 +0000)]
[x86] Remove a SimpleTy usage. No need for it here, we already have the
MVT.
llvm-svn: 230622
Alexey Bataev [Thu, 26 Feb 2015 10:27:34 +0000 (10:27 +0000)]
[OPENMP] Fixed codegen for directives without function outlining.
Fixed crash on codegen for directives like 'omp for', 'omp single' etc. inside of the 'omp parallel', 'omp task' etc. regions.
llvm-svn: 230621
Daniel Jasper [Thu, 26 Feb 2015 09:49:08 +0000 (09:49 +0000)]
clang-format: Allow breaking after "else if(" as a last resort.
This isn't generally nice, but better than violating the column limit.
llvm-svn: 230620
Sanjoy Das [Thu, 26 Feb 2015 08:56:04 +0000 (08:56 +0000)]
IRCE: only touch loops that have been shown to have a high
backedge-taken count in profiliing data.
llvm-svn: 230619
Sanjoy Das [Thu, 26 Feb 2015 08:19:31 +0000 (08:19 +0000)]
IRCE: generalize to handle loops with decreasing induction variables.
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
Chandler Carruth [Thu, 26 Feb 2015 08:19:24 +0000 (08:19 +0000)]
[x86] Make the vector shuffle helpers order the SDLoc and MVT arguments.
This ordering matches that of DAG.getNode.
llvm-svn: 230617
Craig Topper [Thu, 26 Feb 2015 08:09:05 +0000 (08:09 +0000)]
[X86] Remove the blendps/blendpd builtins. They aren't used by the intrinsic headers. We use appropriate shuffle vector instead.
llvm-svn: 230616
Craig Topper [Thu, 26 Feb 2015 06:23:15 +0000 (06:23 +0000)]
[X86] Correct immediate range checking for blendps/blendpd/blendpd256 builtins.
llvm-svn: 230615
Davide Italiano [Thu, 26 Feb 2015 05:39:57 +0000 (05:39 +0000)]
[Core] Do not reclaim absolute atoms in resolver.
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
Duncan P. N. Exon Smith [Thu, 26 Feb 2015 05:00:42 +0000 (05:00 +0000)]
IR: Use '= default' instead of r230609, NFC
Apparently we can use this now!
llvm-svn: 230613
Duncan P. N. Exon Smith [Thu, 26 Feb 2015 04:53:00 +0000 (04:53 +0000)]
FileCheck: Add CHECK-SAME
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
Simon Atanasyan [Thu, 26 Feb 2015 04:45:57 +0000 (04:45 +0000)]
[Mips] Handle -mips32r[3|5] / -mips64r[3|5] options while selecting 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
Duncan P. N. Exon Smith [Thu, 26 Feb 2015 04:44:27 +0000 (04:44 +0000)]
CGDebugInfo: Use DIImportedEntity default constructor, NFC
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
Duncan P. N. Exon Smith [Thu, 26 Feb 2015 04:41:10 +0000 (04:41 +0000)]
IR: Add default constructor for DIImportedEntity
Add a default constructor for `DIImportedEntity`, to be used in clang in
a follow-up.
llvm-svn: 230609
Adam Nemet [Thu, 26 Feb 2015 04:39:09 +0000 (04:39 +0000)]
[LoopAccesses] Add command-line option for RuntimeMemoryCheckThreshold
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
Sanjoy Das [Thu, 26 Feb 2015 04:03:31 +0000 (04:03 +0000)]
IRCE: print newline after printing an InductiveRangeCheck.
llvm-svn: 230607
Saleem Abdulrasool [Thu, 26 Feb 2015 04:01:37 +0000 (04:01 +0000)]
Unwind: clean up some GCC warnings
This cleans up a set of -Wsign-conversion, -Wint-conversion, and -Wformat
warnings from GCC 4.9.2 on Linux. NFC.
llvm-svn: 230606
Oleksiy Vyalov [Thu, 26 Feb 2015 02:50:14 +0000 (02:50 +0000)]
Return a current executable's directory from HostInfoAndroid::ComputeSupportExeDirectory.
http://reviews.llvm.org/D7876
llvm-svn: 230604
Richard Trieu [Thu, 26 Feb 2015 02:40:48 +0000 (02:40 +0000)]
Update assumption in template diffing about integer template arguments.
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
Enrico Granata [Thu, 26 Feb 2015 01:37:26 +0000 (01:37 +0000)]
If we are trying to load the scripting resource for a module whose name 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
Philip Reames [Thu, 26 Feb 2015 01:18:21 +0000 (01:18 +0000)]
[GC docs] Add example IR, assembly, and stackmaps to Statepoint documentation
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
Richard Smith [Thu, 26 Feb 2015 01:11:08 +0000 (01:11 +0000)]
Split StaticAnalyzer module into three to fix a cyclic dependency. Dependencies
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
David Majnemer [Thu, 26 Feb 2015 01:10:49 +0000 (01:10 +0000)]
Replace a few instances of NULL with nullptr.
llvm-svn: 230599
Reid Kleckner [Thu, 26 Feb 2015 01:10:15 +0000 (01:10 +0000)]
clang-cl: Expose -fcolor-diagnostics and -fansi-escape-codes
They don't conflict with MSVC flags.
llvm-svn: 230598
David Majnemer [Thu, 26 Feb 2015 00:57:33 +0000 (00:57 +0000)]
Sema: __assume with side effects shouldn't result in invalid AST nodes
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
Reid Kleckner [Thu, 26 Feb 2015 00:51:33 +0000 (00:51 +0000)]
Pass /nologo to ml64 for quieter builds
It still prints "Assembling path/to/X86CompilationCallback_Win64.asm",
but linking does the same thing.
llvm-svn: 230596
Jonathan Roelofs [Thu, 26 Feb 2015 00:48:22 +0000 (00:48 +0000)]
Add self to CREDITS.txt
llvm-svn: 230595
Michael J. Spencer [Thu, 26 Feb 2015 00:48:10 +0000 (00:48 +0000)]
Add Example Sub Target.
llvm-svn: 230594
Michael J. Spencer [Thu, 26 Feb 2015 00:47:34 +0000 (00:47 +0000)]
[ELF][x86-64] Make the X86_64LinkingContext and X86_64TargetHandler derivable.
llvm-svn: 230593
Jonathan Roelofs [Thu, 26 Feb 2015 00:42:17 +0000 (00:42 +0000)]
Add remote testing support to the lit config.
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
Ramkumar Ramachandra [Thu, 26 Feb 2015 00:35:56 +0000 (00:35 +0000)]
PlaceSafepoints: use IRBuilder helpers
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
Reid Kleckner [Thu, 26 Feb 2015 00:33:41 +0000 (00:33 +0000)]
Silence unused variable warning in NDEBUG build
llvm-svn: 230590
Eric Christopher [Thu, 26 Feb 2015 00:29:54 +0000 (00:29 +0000)]
Fix a [-Werror,-Wreorder] initialization ordering error.
llvm-svn: 230589
Peter Collingbourne [Thu, 26 Feb 2015 00:18:04 +0000 (00:18 +0000)]
docs: Document CFI padding and all-ones optimizations. Link to viewvc.
llvm-svn: 230588
Reid Kleckner [Thu, 26 Feb 2015 00:17:25 +0000 (00:17 +0000)]
Add -fuse-line-directive flag to control usage of #line with -E
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
Richard Smith [Thu, 26 Feb 2015 00:01:03 +0000 (00:01 +0000)]
Remove some unused includes of llvm/IR headers from parts of Clang that really
shouldn't depend on LLVM IR.
llvm-svn: 230586
Eric Christopher [Thu, 26 Feb 2015 00:00:35 +0000 (00:00 +0000)]
Remove a FIXME.
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
Eric Christopher [Thu, 26 Feb 2015 00:00:33 +0000 (00:00 +0000)]
Fix a couple of depedent->dependent typos.
llvm-svn: 230584
Eric Christopher [Thu, 26 Feb 2015 00:00:24 +0000 (00:00 +0000)]
Remove an argument-less call to getSubtargetImpl from TargetLoweringBase.
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
Ramkumar Ramachandra [Wed, 25 Feb 2015 23:55:00 +0000 (23:55 +0000)]
MemDepPrinter: Fix some nits introduced in r228596
Differential Revision: http://reviews.llvm.org/D7644
llvm-svn: 230582
Philip Reames [Wed, 25 Feb 2015 23:52:06 +0000 (23:52 +0000)]
[GC docs] More minor word tweaks to make the GC bits clearer
llvm-svn: 230581
Larisse Voufo [Wed, 25 Feb 2015 23:48:43 +0000 (23:48 +0000)]
Improvement on sized deallocation from r230160:
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
Larisse Voufo [Wed, 25 Feb 2015 23:48:35 +0000 (23:48 +0000)]
Fix typo.
llvm-svn: 230579
Michael J. Spencer [Wed, 25 Feb 2015 23:48:33 +0000 (23:48 +0000)]
Remove unused variables.
llvm-svn: 230578
Larisse Voufo [Wed, 25 Feb 2015 23:48:25 +0000 (23:48 +0000)]
Move -fdefine-sized-deallocation and -fno-sized-deallocation options from driver into CC1 for now.
llvm-svn: 230577
Philip Reames [Wed, 25 Feb 2015 23:45:20 +0000 (23:45 +0000)]
[GC Docs] Update LangRef to link to Statepoint docs
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
Michael J. Spencer [Wed, 25 Feb 2015 23:27:13 +0000 (23:27 +0000)]
[ELF][x86] Detemplatify ELFT. There's only a single valid instantiation.
llvm-svn: 230574
Kostya Serebryany [Wed, 25 Feb 2015 23:23:01 +0000 (23:23 +0000)]
[asan] reenable odr-violation.cc test on non-x86-64 after confirming that it's fixed. PR22699
llvm-svn: 230573
Philip Reames [Wed, 25 Feb 2015 23:22:43 +0000 (23:22 +0000)]
[GC docs] Fill in description of the statepoint-example GC strategy
llvm-svn: 230572
Peter Collingbourne [Wed, 25 Feb 2015 23:18:42 +0000 (23:18 +0000)]
UBSan: Use the correct function prologue for x32.
llvm-svn: 230571
Philip Reames [Wed, 25 Feb 2015 23:07:34 +0000 (23:07 +0000)]
[GC Docs] Minor wording clarification
llvm-svn: 230570
Alexey Samsonov [Wed, 25 Feb 2015 23:07:32 +0000 (23:07 +0000)]
[CMake] Properly detect whether we're building runtime for i386 or i686.
llvm-svn: 230569
David Majnemer [Wed, 25 Feb 2015 23:01:21 +0000 (23:01 +0000)]
MS ABI: Turn throw into std::terminate for now, make try/catch "work"
This lets us compile programs which make use of exceptional constructs
statically without executing any of them dynamically.
llvm-svn: 230568
Justin Bogner [Wed, 25 Feb 2015 22:59:20 +0000 (22:59 +0000)]
Object: Handle Mach-O kext bundle files
This particular subtype of Mach-O was missing. Add it.
llvm-svn: 230567
Justin Bogner [Wed, 25 Feb 2015 22:52:20 +0000 (22:52 +0000)]
InstrProf: Make the __llvm_profile_runtime_user symbol hidden
This symbol exists only to pull in the required pieces of the runtime,
so nothing ever needs to refer to it. Making it hidden avoids the
potential for issues with duplicate symbols when linking profiled
libraries together.
llvm-svn: 230566
Duncan P. N. Exon Smith [Wed, 25 Feb 2015 22:46:38 +0000 (22:46 +0000)]
IR: Drop newline from AssemblyWriter::printMDNodeBody()
Remove a newline from `AssemblyWriter::printMDNodeBody()`, and add one
to `AssemblyWriter::writeMDNode()`. NFCI for assembly output.
However, this drops an inconsistent newline from `Metadata::print()`
when `this` is an `MDNode`. Now the newline added by `Metadata::dump()`
won't look so verbose.
llvm-svn: 230565
Sanjay Patel [Wed, 25 Feb 2015 22:46:08 +0000 (22:46 +0000)]
only propagate equality comparisons of FP values that we are certain are non-zero
This is a follow-on to r227491 which tightens the check for propagating FP
values. If a non-constant value happens to be a zero, we would hit the same
bug as before.
Bug noted and patch suggested by Eli Friedman.
llvm-svn: 230564
Justin Bogner [Wed, 25 Feb 2015 22:44:50 +0000 (22:44 +0000)]
InstrProf: Remove dead code in CoverageMappingReader
Remove a default argument that's never passed and a constructor that's
never called.
llvm-svn: 230563
Greg Clayton [Wed, 25 Feb 2015 22:41:34 +0000 (22:41 +0000)]
Optimize finding the Complete Definition of an ObjC class for debug with .o files with lots of .o files.
When we have a debug map we have an executable with a bunch of STAB symbols and each source file has a N_SO symbol which scopes a bunch of symbols inside of it. We can use this to our advantage here when looking for the complete definition of an objective C class by looking for a symbol whose name matches the class name and whose type is eSymbolTypeObjCClass. If we find one, that symbol will be contained within a N_SO symbol. This symbol gets turned into a symbol whose type is eSymbolTypeSourceFile and that symbol will contain the eSymbolTypeObjCClass which helps us to locate the correct .o file and allows us to only look in that file.
To further accelerate things, if we are looking for the implementation, we can avoid looking at all .o files if we don't find a matching symbol because we have a debug map, which means the objective C symbol for the class can't have been stripped, so we can safely not search all remaining .o files. This will save us lots of time when trying to look for "NSObject" and any other AppKit and Foundation classes that we never have implementation definitions for.
<rdar://problem/
19234225>
llvm-svn: 230562
Eric Christopher [Wed, 25 Feb 2015 22:41:30 +0000 (22:41 +0000)]
Move TargetLoweringBase::getTypeConversion to the .cpp file from
the .h file. It's used in only one place (other than recursively)
and there's no need to include it everywhere.
Saves almost 900k from total llvm object file size.
llvm-svn: 230561
JF Bastien [Wed, 25 Feb 2015 22:30:51 +0000 (22:30 +0000)]
InstCombine: extract instead of shuffle when performing vector/array type punning
Summary: SROA generates code that isn't quite as easy to optimize and contains unusual-sized shuffles, but that code is generally correct. As discussed in D7487 the right place to clean things up is InstCombine, which will pick up the type-punning pattern and transform it into a more obvious bitcast+extractelement, while leaving the other patterns SROA encounters as-is.
Test Plan: make check
Reviewers: jvoung, chandlerc
Subscribers: llvm-commits
llvm-svn: 230560
Frederic Riss [Wed, 25 Feb 2015 22:30:09 +0000 (22:30 +0000)]
[dwarfdump] Fix frame info register number dump.
llvm-svn: 230559
Richard Smith [Wed, 25 Feb 2015 22:20:13 +0000 (22:20 +0000)]
[modules] Even if we already have a definition of a class, loading in another
one can give us more lookup results (due to implicit special members). Be sure
to complete the redecl chain for every kind of DeclContext before performing a
lookup into it, rather than only doing so for NamespaceDecls.
llvm-svn: 230558
JF Bastien [Wed, 25 Feb 2015 22:16:46 +0000 (22:16 +0000)]
libc++: support newlib's ctype
Summary: Newlib supports ctype differently from other platforms, this patch teaches libc++ about yet another platform that does ctype differently.
Reviewers: jroelofs
Subscribers: cfe-commits, danalbert, EricWF, jvoung, jfb, mclow.lists
Differential Revision: http://reviews.llvm.org/D7888
llvm-svn: 230557
Oleksiy Vyalov [Wed, 25 Feb 2015 22:15:44 +0000 (22:15 +0000)]
Add qModuleInfo request in order to get module information (uuid, triple,..) by module path from remote platform.
http://reviews.llvm.org/D7709
llvm-svn: 230556
Duncan P. N. Exon Smith [Wed, 25 Feb 2015 22:08:21 +0000 (22:08 +0000)]
IR: Annotate dump methods with LLVM_DUMP_METHOD
It turns out we have a macro to ensure that debuggers can access
`dump()` methods. Use it. Hopefully this will prevent me (and others)
from committing crimes like in r223802 (search for /10000/, or just see
the fix in r224407).
llvm-svn: 230555
Frederic Riss [Wed, 25 Feb 2015 22:07:43 +0000 (22:07 +0000)]
Try to appease buildbots.
It seems ArrayRefs to multi-dimensional arrays confuse some compilers.
llvm-svn: 230554
Hal Finkel [Wed, 25 Feb 2015 21:36:59 +0000 (21:36 +0000)]
[PowerPC] Make LDtocL and friends invariant loads
LDtocL, and other loads that roughly correspond to the TOC_ENTRY SDAG node,
represent loads from the TOC, which is invariant. As a result, these loads can
be hoisted out of loops, etc. In order to do this, we need to generate
GOT-style MMOs for TOC_ENTRY, which requires treating it as a legitimate memory
intrinsic node type. Once this is done, the MMO transfer is automatically
handled for TableGen-driven instruction selection, and for nodes generated
directly in PPCISelDAGToDAG, we need to transfer the MMOs manually.
Also, we were not transferring MMOs associated with pre-increment loads, so do
that too.
Lastly, this fixes an exposed bug where R30 was not added as a defined operand of
UpdateGBR.
This problem was highlighted by an example (used to generate the test case)
posted to llvmdev by Francois Pichet.
llvm-svn: 230553
Johannes Doerfert [Wed, 25 Feb 2015 21:31:38 +0000 (21:31 +0000)]
Add the IMPACT2015 publications
It is important we add more publications with/about Polly so people
can see that work and research is actually ongoing.
llvm-svn: 230552
Frederic Riss [Wed, 25 Feb 2015 21:30:22 +0000 (21:30 +0000)]
[dwarfdump] Make debug_frame dump actually useful.
This adds support for pretty-printing instruction operands. The new
output looks like:
00000000 00000010 ffffffff CIE
Version: 1
Augmentation:
Code alignment factor: 1
Data alignment factor: -4
Return address column: 8
DW_CFA_def_cfa: reg4 +4
DW_CFA_offset: reg8 -4
DW_CFA_nop:
DW_CFA_nop:
00000014 00000010 00000000 FDE cie=
00000000 pc=
00000000...
00000022
DW_CFA_advance_loc: 3
DW_CFA_def_cfa_offset: +12
DW_CFA_nop:
llvm-svn: 230551
Frederic Riss [Wed, 25 Feb 2015 21:30:19 +0000 (21:30 +0000)]
[dwarfdump] Don't print meaningless pointer.
CIE pointers were never filled in before, and printing the pointer
is totally pointless anyway.
llvm-svn: 230550
Frederic Riss [Wed, 25 Feb 2015 21:30:16 +0000 (21:30 +0000)]
DWARFDebugFrame: Move some code around. NFC.
Move the FrameEntry::dumpInstructions down in the file at some
place where it can see the declarations of FDE and CIE.
llvm-svn: 230549
Frederic Riss [Wed, 25 Feb 2015 21:30:13 +0000 (21:30 +0000)]
DWARFDebugFrame: Add some trivial accessors. NFC.
To be used for dumping.
llvm-svn: 230548
Frederic Riss [Wed, 25 Feb 2015 21:30:09 +0000 (21:30 +0000)]
DWARFDebugFrame: Actually collect CIEs associated with FDEs.
This is the first commit in a small series aiming at making
debug_frame dump more useful (right now it prints a list of
opeartions without their operands).
llvm-svn: 230547
Johannes Doerfert [Wed, 25 Feb 2015 21:26:03 +0000 (21:26 +0000)]
Add myself to the contributors of Polly
llvm-svn: 230546
Johannes Doerfert [Wed, 25 Feb 2015 21:20:57 +0000 (21:20 +0000)]
Add non-affine subregions to the TODO list
llvm-svn: 230545
Manman Ren [Wed, 25 Feb 2015 21:20:53 +0000 (21:20 +0000)]
[LTO API] fix memory leakage introduced at r230290.
r230290 released the LLVM module but not the LTOModule.
rdar://
19024554
llvm-svn: 230544
David Majnemer [Wed, 25 Feb 2015 21:13:37 +0000 (21:13 +0000)]
X86, Win64: Allow 'mov' to restore the stack pointer if we have a FP
The Win64 epilogue structure is very restrictive, it permits a very
small number of opcodes and none of them are 'mov'.
This means that given:
mov %rbp, %rsp
pop %rbp
The mov isn't the epilogue, only the pop is. This is problematic unless
a frame pointer is present in which case we are free to do whatever we'd
like in the "body" of the function. If a frame pointer is present,
unwinding will undo the prologue operations in reverse order regardless
of the fact that we are at an instruction which is reseting the stack
pointer.
llvm-svn: 230543
Lang Hames [Wed, 25 Feb 2015 20:58:28 +0000 (20:58 +0000)]
[Orc][Kaleidoscope] Clean up the Orc/Kaleidoscope tutorials to minimize the diffs
between them.
llvm-svn: 230542