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
Kuba Brecka [Wed, 25 Feb 2015 20:56:04 +0000 (20:56 +0000)]
Fix >80 line after r230530.
llvm-svn: 230541
Peter Collingbourne [Wed, 25 Feb 2015 20:42:41 +0000 (20:42 +0000)]
LowerBitSets: Align referenced globals.
This change aligns globals to the next highest power of 2 bytes, up to a
maximum of 128. This makes it more likely that we will be able to compress
bit sets with a greater alignment. In many more cases, we can now take
advantage of a new optimization also introduced in this patch that removes
bit set checks if the bit set is all ones.
The 128 byte maximum was found to provide the best tradeoff between instruction
overhead and data overhead in a recent build of Chromium. It allows us to
remove ~2.4MB of instructions at the cost of ~250KB of data.
Differential Revision: http://reviews.llvm.org/D7873
llvm-svn: 230540
Zachary Turner [Wed, 25 Feb 2015 20:42:19 +0000 (20:42 +0000)]
[CMake] Fix the clang-cl self host build.
This allows clang-cl to self-host cleanly with no magic setup
steps required.
After this patch, all you have to do is set CC=CXX=clang-cl and
run cmake -G Ninja.
These changes only exist to support C++ features which are
unsupported in clang-cl, so regardless of whether the user
specifies they want to use them, we still have to disable them.
llvm-svn: 230539
Richard Smith [Wed, 25 Feb 2015 20:20:39 +0000 (20:20 +0000)]
Remove non-existent file from module map.
llvm-svn: 230538
Kostya Serebryany [Wed, 25 Feb 2015 20:19:23 +0000 (20:19 +0000)]
[asan] restict no_asan_gen_globals.c test to 64-bit due to PR22682
llvm-svn: 230537
Peter Collingbourne [Wed, 25 Feb 2015 20:14:05 +0000 (20:14 +0000)]
CFI: Add a check-cfi-and-supported rule.
This rule works like check-cfi, but fails if the tests are unsupported.
This is useful to run on bots if we want to be sure that the tests aren't
silently being skipped.
llvm-svn: 230536
Andrew Kaylor [Wed, 25 Feb 2015 20:12:49 +0000 (20:12 +0000)]
Fixing a problem with insert location in WinEH outlining
llvm-svn: 230535
Ben Langmuir [Wed, 25 Feb 2015 20:09:06 +0000 (20:09 +0000)]
Allow (Object *)kMyGlobalCFObj casts without bridging
Previously we allowed these casts only for constants declared in system
headers, which we assume are retain/release-neutral. Now also allow them
for constants in user headers, treating them as +0. Practically, this
means that we will now allow:
id x = (id)kMyGlobalConst;
But unlike with system headers we cannot mix them with +1 values:
id y = (id)(b ? kMyGlobalConst : [Obj newValAtPlusOne]); // error
id z = (id)(b ? kSystemGlobalConst: [Obj newValAtPlusOne]); // OK
Thanks to John for suggesting this improvement.
llvm-svn: 230534
Sanjoy Das [Wed, 25 Feb 2015 20:02:59 +0000 (20:02 +0000)]
Bugfix: SCEVExpander incorrectly marks increment operations as no-wrap
(The change was landed in r230280 and caused the regression PR22674.
This version contains a fix and a test-case for PR22674).
When emitting the increment operation, SCEVExpander marks the
operation as nuw or nsw based on the flags on the preincrement SCEV.
This is incorrect because, for instance, it is possible that {-6,+,1}
is <nuw> while {-6,+,1}+1 = {-5,+,1} is not.
This change teaches SCEV to mark the increment as nuw/nsw only if it
can explicitly prove that the increment operation won't overflow.
Apart from the attached test case, another (more realistic)
manifestation of the bug can be seen in
Transforms/IndVarSimplify/pr20680.ll.
Differential Revision: http://reviews.llvm.org/D7778
llvm-svn: 230533
Richard Smith [Wed, 25 Feb 2015 19:55:49 +0000 (19:55 +0000)]
Add missing #include found by modules buildbot.
llvm-svn: 230532
Zachary Turner [Wed, 25 Feb 2015 19:52:41 +0000 (19:52 +0000)]
Revert "Fix warnings found with clang-cl."
SWIG doesn't like enum : unsigned. Revert this until I can
fix this in a way that swig likes.
llvm-svn: 230531
Kuba Brecka [Wed, 25 Feb 2015 19:50:38 +0000 (19:50 +0000)]
[compiler-rt] Symbolizer refactoring: Move SymbolizerProcess interface to header
Reviewed at http://reviews.llvm.org/D7868
llvm-svn: 230530
Kuba Brecka [Wed, 25 Feb 2015 19:35:08 +0000 (19:35 +0000)]
[compiler-rt] Symbolizer refactoring: Move string parsing into separate functions
Reviewed at http://reviews.llvm.org/D7869
llvm-svn: 230529
Tobias Grosser [Wed, 25 Feb 2015 19:34:52 +0000 (19:34 +0000)]
Update isl to 0980603 'isl_tab_pip.c: parallel_constraints: drop useless assignment'
This update contains:
- Fixes of minor issues detected by clang's scan_build
- More schedule tree infrastructure additions
This update slightly changes the output of our dependence analysis, but these
changes are purely syntactially.
llvm-svn: 230528
Reid Kleckner [Wed, 25 Feb 2015 19:17:50 +0000 (19:17 +0000)]
clang-cl: Ignore /Fd silently
While it's true that we don't create the PDB as requested on the command
line, this is a well-documented limitation. Warning about it doesn't
help people using legacy build systems with clang-cl, and it makes the
clang-cl self-host very noisy.
llvm-svn: 230527
Reid Kleckner [Wed, 25 Feb 2015 19:17:48 +0000 (19:17 +0000)]
Reland (2x) r230314, "Fix codegen for virtual methods that are (re-) exported from multiple modules."
This reverts commits r230477 and r230478.
llvm-svn: 230526
Reid Kleckner [Wed, 25 Feb 2015 19:17:45 +0000 (19:17 +0000)]
Reland r230446, "MS ABI: Try to respect external AST source record layouts"
It broke test/PCH/headersearch.cpp because it was using -Wpadding, which
only works for Itanium layout. Before this commit, we would use Itanium
record layout when using PCH, which is crazy. Now that the test uses an
explicit Itanium triple, we can reland.
llvm-svn: 230525
Reid Kleckner [Wed, 25 Feb 2015 19:04:51 +0000 (19:04 +0000)]
Use Itanium triple in test using -Wpadding
-Wpadding is not implemented in the Microsoft record layout builder.
This test only passes on Windows because PCH forces us to use the
Itanium record layout builder. I'm about to fix that, so change the
test to not rely on that ridiculous behavior.
llvm-svn: 230524
Zachary Turner [Wed, 25 Feb 2015 18:56:47 +0000 (18:56 +0000)]
Solve hang on Windows when lldb fails to launch the process.
The DebuggerThread was detecting the launch error, but it was
ignored by ProcessWindows::DoLaunch, causing LLDB to wait forever
in the debugger loop.
This fixes the test case that explicitly attempts to launch a
process from a non-existant path.
Patch by Adrian McCarthy
Differential Revision: http://reviews.llvm.org/D7874
llvm-svn: 230523
Zachary Turner [Wed, 25 Feb 2015 18:42:47 +0000 (18:42 +0000)]
Fix warnings found with clang-cl.
Earlier this week I was able to get clang-cl on Windows to be
able to self host. This opened the door to being able to
get a whole new slew of warnings for the Windows build.
This patch fixes all of the warnings, many of which were real
bugs.
llvm-svn: 230522
Andrey Churbanov [Wed, 25 Feb 2015 18:38:08 +0000 (18:38 +0000)]
Removed all header files for OpenMP 2.5
llvm-svn: 230521
Andrey Churbanov [Wed, 25 Feb 2015 18:32:30 +0000 (18:32 +0000)]
Export the common header files to exports/ with CMake
llvm-svn: 230520
Andrey Churbanov [Wed, 25 Feb 2015 18:30:50 +0000 (18:30 +0000)]
Set the Intel compiler as default when building for the MIC without CMake
llvm-svn: 230519
Hal Finkel [Wed, 25 Feb 2015 18:06:45 +0000 (18:06 +0000)]
[PowerPC] Cleanup unused target-specific SDAG nodes
We had somehow accumulated a few target-specific SDAG nodes dealing with PPC64
TOC access that were referenced only in TableGen patterns. The associated
(pseudo-)instructions are used, but are being generated directly. NFC.
llvm-svn: 230518
Matthias Braun [Wed, 25 Feb 2015 18:03:50 +0000 (18:03 +0000)]
AArch64: Add debug message for large shift constants.
As requested in code review.
llvm-svn: 230517
Kostya Serebryany [Wed, 25 Feb 2015 18:03:03 +0000 (18:03 +0000)]
[asan] temporary disable the test on non-x86-64 while we are investigating PR22699
llvm-svn: 230516
Sanjay Patel [Wed, 25 Feb 2015 18:00:15 +0000 (18:00 +0000)]
Fix really obscure bug in CannotBeNegativeZero() (PR22688)
With a diabolically crafted test case, we could recurse
through this code and return true instead of false.
The larger engineering crime is the use of magic numbers.
Added FIXME comments for those.
llvm-svn: 230515
Nico Weber [Wed, 25 Feb 2015 17:44:04 +0000 (17:44 +0000)]
Make __leave test pass in -Asserts builds.
llvm-svn: 230514
David Majnemer [Wed, 25 Feb 2015 17:36:49 +0000 (17:36 +0000)]
Update for clang r230512
llvm-svn: 230513
David Majnemer [Wed, 25 Feb 2015 17:36:15 +0000 (17:36 +0000)]
Sema: Parenthesized bound destructor member expressions can be called
We would wrongfully reject (a.~A)() in both the destructor and
pseudo-destructor cases.
This fixes PR22668.
llvm-svn: 230512
Chris Lattner [Wed, 25 Feb 2015 17:28:41 +0000 (17:28 +0000)]
fix a typo
llvm-svn: 230510
Greg Clayton [Wed, 25 Feb 2015 17:25:02 +0000 (17:25 +0000)]
MacOSX symbol table change to combine the N_GSYM debug map entry with the "_OBJC_CLASS_$_", "_OBJC_METACLASS_$_", and "_OBJC_IVAR_$_" non debug symbols. This allows the symbol that represents the object file to contain the eSymbolTypeObjCClass and eSymbolTypeObjCMetaClass and will help us to be able to efficiently lookup the real definition of an objective C class without loading all .o files linearly to find the .o file that contains the true definition.
llvm-svn: 230509
Greg Clayton [Wed, 25 Feb 2015 17:22:05 +0000 (17:22 +0000)]
Fix the dumping of symbol tables to be correctly alligned for all entries when using "image dump symtab".
llvm-svn: 230508
Timur Iskhodzhanov [Wed, 25 Feb 2015 17:19:42 +0000 (17:19 +0000)]
Address post-commit feedback on r230344: Don't use weak hooks on Sanitizer Go build for Windows
llvm-svn: 230507
Timur Iskhodzhanov [Wed, 25 Feb 2015 17:03:34 +0000 (17:03 +0000)]
Reland r230019 - [ASan] Make the argument of '__sanitizer_annotate_contiguous_container' is not aligned error message easier to understand
This incorporates the fix for ARM architecture suggested by Renato Golin.
llvm-svn: 230506
Timur Iskhodzhanov [Wed, 25 Feb 2015 17:01:09 +0000 (17:01 +0000)]
Fix duplicate test code introduced by running "patch -p0" twice
Sorry, SVN had some weird problems so I had to revert and reapply the patch
locally a couple of times and didn't notice I've added file contents to the same
file....
llvm-svn: 230505
Tobias Grosser [Wed, 25 Feb 2015 16:59:15 +0000 (16:59 +0000)]
Fix formatting
llvm-svn: 230504
Nico Weber [Wed, 25 Feb 2015 16:25:00 +0000 (16:25 +0000)]
Reland r230460 with a test fix for -Asserts builds.
Original CL description:
Produce less broken basic block sequences for __finally blocks.
The way cleanups (such as PerformSEHFinally) get emitted is that codegen
generates some initialization code, then calls the cleanup's Emit() with the
insertion point set to a good place, then the cleanup is supposed to emit its
stuff, and then codegen might tack in a jump or similar to where the insertion
point is after the cleanup.
The PerformSEHFinally cleanup tries to just stash away the block it's supposed
to codegen into, and then does codegen later, into that stashed block. However,
after codegen'ing the __finally block, it used to set the insertion point to
the finally's continuation block (where the __finally cleanup goes when its body
is completed after regular, non-exceptional control flow). That's not correct,
as that block can (and generally does) already ends in a jump. Instead,
remember the insertion point that was current before the __finally got emitted,
and restore that.
Fixes two of the crashes in PR22553.
llvm-svn: 230503
Hafiz Abid Qadeer [Wed, 25 Feb 2015 16:01:12 +0000 (16:01 +0000)]
Add missing "return" statements.
ExecutionContext::GetAddressByteSize() was calling GettAddressByteSize () on Target and Process class but was ignoring the return type. I have added the missing return.
No regression in the test suite. Committed as obvious.
llvm-svn: 230502
Timur Iskhodzhanov [Wed, 25 Feb 2015 16:00:26 +0000 (16:00 +0000)]
Reland r230419 - add __asan_default_suppressions() hook with a fix for Windows
llvm-svn: 230501
Vladimir Medic [Wed, 25 Feb 2015 15:24:37 +0000 (15:24 +0000)]
[MIPS]Multiple and add instructions for Mips are currently available in mips32r2/mips64r2 and later but should also be available in mips4, mips5, and mips64. This patch fixes the requested features and updates the corresponding test files.
llvm-svn: 230500
Bruno Cardoso Lopes [Wed, 25 Feb 2015 15:14:02 +0000 (15:14 +0000)]
[X86][MMX] Reapply: Add MMX instructions to foldable tables
Reapply r230248.
Teach the peephole optimizer to work with MMX instructions by adding
entries into the foldable tables. This covers folding opportunities not
handled during isel.
llvm-svn: 230499
Bruno Cardoso Lopes [Wed, 25 Feb 2015 15:13:52 +0000 (15:13 +0000)]
[X86][MMX] Prevent MMX_MOVD64rm folding
MMX_MOVD64rm zero-extends i32 load results into i64 registers.
The peephole optimizer will try to fold it in other MMX foldable
instructions, the wrong thing to do, since there's no MMX memory
instruction that loads from i32 and does implict zero extension.
Remove 'canFoldAsLoad' from MOVD64rm in order to prevent such folding.
The current MMX tests already test this, but since there are no MMX
instructions in the foldable tables yet, this did not trigger. This
commit prepares the addition of those instructions.
llvm-svn: 230498
Alexander Kornienko [Wed, 25 Feb 2015 14:42:02 +0000 (14:42 +0000)]
[clang-tidy] Use the new ArrayRef<FixItHint> inserter.
llvm-svn: 230497
Renato Golin [Wed, 25 Feb 2015 14:41:06 +0000 (14:41 +0000)]
Improve handling of stack accesses in Thumb-1
Thumb-1 only allows SP-based LDR and STR to be word-sized, and SP-base LDR,
STR, and ADD only allow offsets that are a multiple of 4. Make some changes
to better make use of these instructions:
* Use word loads for anyext byte and halfword loads from the stack.
* Enforce 4-byte alignment on objects accessed in this way, to ensure that
the offset is valid.
* Do the same for objects whose frame index is used, in order to avoid having
to use more than one ADD to generate the frame index.
* Correct how many bits of offset we think AddrModeT1_s has.
Patch by John Brawn.
llvm-svn: 230496
Alexander Kornienko [Wed, 25 Feb 2015 14:40:56 +0000 (14:40 +0000)]
Add support for inserting ArrayRef<FixItHint> into DiagnosticBuilder.
This is going to be needed in clang-tidy as more checks add complex fixits.
llvm-svn: 230495
Vasileios Kalintiris [Wed, 25 Feb 2015 13:50:18 +0000 (13:50 +0000)]
InstrProf: Fix warnings for mixed declarations and code. NFC.
llvm-svn: 230494
Tamas Berghammer [Wed, 25 Feb 2015 13:26:28 +0000 (13:26 +0000)]
Remove use_pthread option from getBuildFlags in the test environment
Removing the option to require the usage of pthread based on an argument
of the getBuildFlags method in lldbtest.py because it can be specified
by a variable in the makefile for the given test case. Using the
variable in the makefile works in all supported platforms.
Differential revision: http://reviews.llvm.org/D7861
llvm-svn: 230493
Tamas Berghammer [Wed, 25 Feb 2015 13:21:45 +0000 (13:21 +0000)]
Truncate target file for stdout and stderr
Add O_TRUNC when opening file for redirecting stdout and stderr of the
process. It is neccessary because if the file exists then on some
platform the original content is kept while it isn't overwritten by the
new data causing pollution of the saved stdout and stderr.
llvm-svn: 230492
Alexander Kornienko [Wed, 25 Feb 2015 13:17:14 +0000 (13:17 +0000)]
[clang-tidy] Correct spelling error in test file name. NFC.
Patch by Richard Thomson!
http://reviews.llvm.org/D7603
llvm-svn: 230491