Davide Italiano [Wed, 25 Feb 2015 05:56:05 +0000 (05:56 +0000)]
[ELF][X86_64] Handle R_X86_64_PC64 relocation
Differential Revision: D7820
Reviewed by: shankarke, ruiu
llvm-svn: 230465
Sameer Sahasrabuddhe [Wed, 25 Feb 2015 05:48:23 +0000 (05:48 +0000)]
Restores r228382, which was reverted in r228406.
The original commit failed to handle "shift assign" (<<=), which
broke the test mentioned in r228406. This is now fixed and the
test added to the lit tests under SemaOpenCL.
*** Original commit message from r228382 ***
OpenCL: handle shift operator with vector operands
Introduce a number of checks:
1. If LHS is a scalar, then RHS cannot be a vector.
2. Operands must be of integer type.
3. If both are vectors, then the number of elements must match.
Relax the requirement for "usual arithmetic conversions":
When LHS is a vector, a scalar RHS can simply be expanded into a
vector; OpenCL does not require that its rank be lower than the LHS.
For example, the following code is not an error even if the implicit
type of the constant literal is "int".
char2 foo(char2 v) { return v << 1; }
Consolidate existing tests under CodeGenOpenCL, and add more tests
under SemaOpenCL.
llvm-svn: 230464
Ilia K [Wed, 25 Feb 2015 05:47:10 +0000 (05:47 +0000)]
Fix CommandLineCompletionTestCase.test_watchpoint_xxx tests after r230408
llvm-svn: 230463
Charles Davis [Wed, 25 Feb 2015 05:10:25 +0000 (05:10 +0000)]
[IC] Turn non-null MD on pointer loads to range MD on integer loads.
Summary:
This change fixes the FIXME that you recently added when you committed
(a modified version of) my patch. When `InstCombine` combines a load and
store of an pointer to those of an equivalently-sized integer, it currently
drops any `!nonnull` metadata that might be present. This change replaces
`!nonnull` metadata with `!range !{ 1, -1 }` metadata instead.
Reviewers: chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D7621
llvm-svn: 230462
Nico Weber [Wed, 25 Feb 2015 04:39:21 +0000 (04:39 +0000)]
Revert 230419, 230425, 230432.
They don't build on Windows.
http://lab.llvm.org:8011/builders/sanitizer-windows/ went red for example.
llvm-svn: 230461
Nico Weber [Wed, 25 Feb 2015 04:05:18 +0000 (04:05 +0000)]
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: 230460
Nico Weber [Wed, 25 Feb 2015 03:58:36 +0000 (03:58 +0000)]
Add comments for two CleanupKinds.
llvm-svn: 230459
Peter Collingbourne [Wed, 25 Feb 2015 03:35:03 +0000 (03:35 +0000)]
docs: Document optimizations in control flow integrity design doc.
llvm-svn: 230458
Richard Smith [Wed, 25 Feb 2015 03:12:03 +0000 (03:12 +0000)]
Add some missing #includes and forward declarations found by modules build.
llvm-svn: 230457
Adrian Prantl [Wed, 25 Feb 2015 02:46:37 +0000 (02:46 +0000)]
Revert "Adapt clang-tools-extra to clang module format changes."
This reverts commit 230424.
llvm-svn: 230456
Adrian Prantl [Wed, 25 Feb 2015 02:46:29 +0000 (02:46 +0000)]
Revert "Add a missing target requirement."
This reverts commit 230430.
llvm-svn: 230455
Adrian Prantl [Wed, 25 Feb 2015 02:44:04 +0000 (02:44 +0000)]
Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."
llvm-svn: 230454
Adrian Prantl [Wed, 25 Feb 2015 02:43:38 +0000 (02:43 +0000)]
Revert "Add a missing target requirement."
llvm-svn: 230453
Saleem Abdulrasool [Wed, 25 Feb 2015 02:38:03 +0000 (02:38 +0000)]
build: check if atomic routines are implicitly provided
It is possible for the atomic routines to be provided by the compiler without
requiring any additional libraries. Check if that is the case before checking
for a library.
Patch by Matt Glazar!
llvm-svn: 230452
Jason Molenda [Wed, 25 Feb 2015 02:35:25 +0000 (02:35 +0000)]
When FileSpec::Resolve is given a bare file like "ls",
and llvm::sys::fs::make_absolute prepends the current
working directory to that path, leave the original
bare file name unchanged if $cwd/ls doesn't exist.
http://reviews.llvm.org/D7477
<rdar://problem/
18775190>
llvm-svn: 230451
Reid Kleckner [Wed, 25 Feb 2015 02:32:00 +0000 (02:32 +0000)]
Fix bots failing on an explicit triple
Why do we need a registered target for this?
llvm-svn: 230450
Nico Weber [Wed, 25 Feb 2015 02:22:06 +0000 (02:22 +0000)]
Don't crash on missing '{' after __except or __finally, PR22687.
Also add some general test/Parser coverage for SEH blocks.
llvm-svn: 230449
Reid Kleckner [Wed, 25 Feb 2015 02:19:56 +0000 (02:19 +0000)]
Reland r230314 "Fix codegen for virtual methods that are (re-) exported from multiple modules."
This reverts the revert from commit r230406.
The changes in r230445 and r230446 make the test pass on Windows now.
llvm-svn: 230448
Reid Kleckner [Wed, 25 Feb 2015 02:16:15 +0000 (02:16 +0000)]
MS ABI: Add triple to test relying on key functions
llvm-svn: 230447
Reid Kleckner [Wed, 25 Feb 2015 02:16:09 +0000 (02:16 +0000)]
MS ABI: Try to respect external AST source record layouts
Covered by existing tests in test/CodeGen/override-layout.c and
test/CodeGenCXX/override-layout.cpp. Seriously, they found real bugs in
my code. :)
llvm-svn: 230446
Reid Kleckner [Wed, 25 Feb 2015 02:16:02 +0000 (02:16 +0000)]
Add missing MD canonicalization to MS vtable builder
llvm-svn: 230445
Kostya Serebryany [Wed, 25 Feb 2015 02:00:26 +0000 (02:00 +0000)]
[asan] one more attempt to fix windows build
llvm-svn: 230432
Adrian Prantl [Wed, 25 Feb 2015 01:52:10 +0000 (01:52 +0000)]
Add a missing target requirement.
llvm-svn: 230430
Adrian Prantl [Wed, 25 Feb 2015 01:52:05 +0000 (01:52 +0000)]
Add a missing target requirement.
llvm-svn: 230429
Richard Smith [Wed, 25 Feb 2015 01:45:32 +0000 (01:45 +0000)]
Remove slow and apparently pointless updating of all identifiers at the start
of writing out an AST file.
llvm-svn: 230428
Richard Smith [Wed, 25 Feb 2015 01:44:09 +0000 (01:44 +0000)]
[modules] Add include/llvm/IR/DebugInfoFlags.def to the textual headers list.
llvm-svn: 230427
Nico Weber [Wed, 25 Feb 2015 01:43:27 +0000 (01:43 +0000)]
Fold ParseSEHTryBlockCommon() into its only caller. No behavior change.
ParseCXXTryBlockCommon() makes sense because it has two callers due to
function try blocks. There are no SEH function try blocks.
llvm-svn: 230426
Kostya Serebryany [Wed, 25 Feb 2015 01:41:42 +0000 (01:41 +0000)]
[asan] attempting to fix the windows build
llvm-svn: 230425
Adrian Prantl [Wed, 25 Feb 2015 01:32:04 +0000 (01:32 +0000)]
Adapt clang-tools-extra to clang module format changes.
- add clangCodeGen.a to the tools that need it
- tweak pp-trace command line handling to not conflict with clang's.
llvm-svn: 230424
Adrian Prantl [Wed, 25 Feb 2015 01:31:45 +0000 (01:31 +0000)]
Wrap clang module files in a Mach-O, ELF, or COFF container.
This is a necessary prerequisite for debugging with modules.
The .pcm files become containers that hold the serialized AST which allows
us to store debug information in the module file that can be shared by all
object files that were built importing the module.
This reapplies r230044 with a fixed configure+make build and updated
dependencies and testcase requirements. Over the last iteration this
version adds
- missing target requirements for testcases that specify an x86 triple,
- a missing clangCodeGen.a dependency to libClang.a in the make build.
rdar://problem/
19104245
llvm-svn: 230423
Michael J. Spencer [Wed, 25 Feb 2015 01:30:13 +0000 (01:30 +0000)]
Suppress 'warning C4062: enumerator X in switch of enum Y is not handled' from system header.
llvm-svn: 230422
Hal Finkel [Wed, 25 Feb 2015 01:26:59 +0000 (01:26 +0000)]
[PowerPC] Add triples to QPX tests
Some of these tests fail on Darwin systems because of a lack of a triple;
fix that.
llvm-svn: 230421
Philip Reames [Wed, 25 Feb 2015 01:23:59 +0000 (01:23 +0000)]
[GC] Document the recently added PlaceSafepoints and RewriteGCForStatepoints passes
llvm-svn: 230420
Kostya Serebryany [Wed, 25 Feb 2015 01:15:37 +0000 (01:15 +0000)]
[asan] add __asan_default_suppressions() hook
llvm-svn: 230419
Oleksiy Vyalov [Wed, 25 Feb 2015 01:11:38 +0000 (01:11 +0000)]
Fix logging in GDBRemoteCommunicationServerPlatform.
llvm-svn: 230418
Richard Smith [Wed, 25 Feb 2015 01:11:29 +0000 (01:11 +0000)]
Make RedeclarableResult's ownership-transferring constructor be a move
constructor.
llvm-svn: 230417
Duncan P. N. Exon Smith [Wed, 25 Feb 2015 01:10:03 +0000 (01:10 +0000)]
llvm-dis: Stop crashing when dropping debug info
Since r199356, we've printed a warning when dropping debug info.
r225562 started crashing on that, since it registered a diagnostic
handler that only expected errors. This fixes the handler to expect
other severities. As a side effect, it now prints "error: " at the
start of error messages, similar to `llvm-as`.
There was a testcase for r199356, but it only really checked the
assembler. Move `test/Bitcode/drop-debug-info.ll` to `test/Assembler`,
and introduce `test/Bitcode/drop-debug-info.3.5.ll` (and companion
`.bc`) to test the bitcode reader.
Note: tools/gold/gold-plugin.cpp has an equivalent bug, but I'm not sure
what the best fix is there. I'll file a PR.
llvm-svn: 230416
David Blaikie [Wed, 25 Feb 2015 01:08:52 +0000 (01:08 +0000)]
[opaque pointer type] Bitcode support for explicit type parameter on GEP.
Like r230414, add bitcode support including backwards compatibility, for
an explicit type parameter to GEP.
At the suggestion of Duncan I tried coalescing the two older bitcodes into a
single new bitcode, though I did hit a wrinkle: I couldn't figure out how to
create an explicit abbreviation for a record with a variable number of
arguments (the indicies to the gep). This means the discriminator between
inbounds and non-inbounds gep is a full variable-length field I believe? Is my
understanding correct? Is there a way to create such an abbreviation? Should I
just use two bitcodes as before?
Reviewers: dexonsmith
Differential Revision: http://reviews.llvm.org/D7736
llvm-svn: 230415
David Blaikie [Wed, 25 Feb 2015 01:07:20 +0000 (01:07 +0000)]
[opaque pointer type] bitcode support for explicit type parameter to the load instruction
Summary:
I've taken my best guess at this, but I've cargo culted in places & so
explanations/corrections would be great.
This seems to pass all the tests (check-all, covering clang and llvm) so I
believe that pretty well exercises both the backwards compatibility and common
(same version) compatibility given the number of checked in bitcode files we
already have. Is that a reasonable approach to testing here? Would some more
explicit tests be desired?
1) is this the right way to do back-compat in this case (looking at the number
of entries in the bitcode record to disambiguate between the old schema and
the new?)
2) I don't quite understand the logarithm logic to choose the encoding type of
the type parameter in the abbreviation description, but I found another
instruction doing the same thing & it seems to work. Is that the right
approach?
Reviewers: dexonsmith
Differential Revision: http://reviews.llvm.org/D7655
llvm-svn: 230414
Hal Finkel [Wed, 25 Feb 2015 01:06:45 +0000 (01:06 +0000)]
[PowerPC] Add support for the QPX vector instruction set
This adds support for the QPX vector instruction set, which is used by the
enhanced A2 cores on the IBM BG/Q supercomputers. QPX vectors are 256 bytes
wide, holding 4 double-precision floating-point values. Boolean values, modeled
here as <4 x i1> are actually also represented as floating-point values
(essentially { -1, 1 } for { false, true }). QPX shares many features with
Altivec and VSX, but is distinct from both of them. One major difference is
that, instead of adding completely-separate vector registers, QPX vector
registers are extensions of the scalar floating-point registers (lane 0 is the
corresponding scalar floating-point value). The operations supported on QPX
vectors mirrors that supported on the scalar floating-point values (with some
additional ones for permutations and logical/comparison operations).
I've been maintaining this support out-of-tree, as part of the bgclang project,
for several years. This is not the entire bgclang patch set, but is most of the
subset that can be cleanly integrated into LLVM proper at this time. Adding
this to the LLVM backend is part of my efforts to rebase bgclang to the current
LLVM trunk, but is independently useful (especially for codes that use LLVM as
a JIT in library form).
The assembler/disassembler test coverage is complete. The CodeGen test coverage
is not, but I've included some tests, and more will be added as follow-up work.
llvm-svn: 230413
Richard Smith [Wed, 25 Feb 2015 00:56:02 +0000 (00:56 +0000)]
[modules] Fix a bug that would result in a build with P paths through a module
graph with M modules to take O(P) time, not just O(M) time, when using explicit
module builds.
llvm-svn: 230412
Rafael Espindola [Wed, 25 Feb 2015 00:52:15 +0000 (00:52 +0000)]
Support SHF_MERGE sections in COMDATs.
This patch unifies the comdat and non-comdat code paths. By doing this
it add missing features to the comdat side and removes the fixed
section assumptions from the non-comdat side.
In ELF there is no one true section for "4 byte mergeable" constants.
We are better off computing the required properties of the section
and asking the context for it.
llvm-svn: 230411
David Blaikie [Wed, 25 Feb 2015 00:51:52 +0000 (00:51 +0000)]
BitcodeWriter: Refactor common computation of bits required for a type index.
Suggested by Duncan. Happy to bikeshed the name, cache the result, etc.
llvm-svn: 230410
Kostya Serebryany [Wed, 25 Feb 2015 00:49:12 +0000 (00:49 +0000)]
[asan] add suppressions for odr violations
llvm-svn: 230409
Greg Clayton [Wed, 25 Feb 2015 00:32:43 +0000 (00:32 +0000)]
If you try to auto-complete "target symbols<TAB>" you get "target symbolsadd" instead of "target symbols ".
Fix this by returning the fact that the "symbols" word is complete if there is nothing else to complete after the "symbols" word.
<rdar://problem/
19164599>
llvm-svn: 230408
Philip Reames [Wed, 25 Feb 2015 00:22:07 +0000 (00:22 +0000)]
Fix consistently wrong sphinx markup
I'd been using '' where I should have been using ``.
llvm-svn: 230407
NAKAMURA Takumi [Wed, 25 Feb 2015 00:18:22 +0000 (00:18 +0000)]
Revert r230314, "Fix codegen for virtual methods that are (re-) exported from multiple modules."
It crashes for targeting (i686|x86_64)-win32.
clang: clang/lib/AST/VTableBuilder.cpp:142: {anonymous}::FinalOverriders::OverriderInfo {anonymous}::FinalOverriders::getOverrider(const clang::CXXMethodDecl*, clang::CharUnits) const: Assertion `OverridersMap.count(std::make_pair(MD, BaseOffset)) && "Did not find overrider!"' failed.
llvm-svn: 230406
Philip Reames [Wed, 25 Feb 2015 00:18:04 +0000 (00:18 +0000)]
Update the GC docs to explicitly mention both gcroot and gc.statepoint
Also, fix confusing bit of the gcroot documentation that bit me personally.
llvm-svn: 230405
Eric Christopher [Wed, 25 Feb 2015 00:12:11 +0000 (00:12 +0000)]
Make this test even more OS and register allocation neutral.
llvm-svn: 230404
Philip Reames [Tue, 24 Feb 2015 23:57:26 +0000 (23:57 +0000)]
[GC] Sync documentation with code naming
Fixing an issue pointed out by Sean Silva. Thanks!
llvm-svn: 230403
Philip Reames [Tue, 24 Feb 2015 23:51:37 +0000 (23:51 +0000)]
More GC documentation cleanup
llvm-svn: 230402
Greg Clayton [Tue, 24 Feb 2015 23:50:21 +0000 (23:50 +0000)]
Fixed Xcode project after recent changes:
"After recent changes, some code has become redundant. This revision tries to remove
the un-used code and tidy up the rest.
Following 4 files have been removed. I have updated CMake files and checked that it builds
fine on Linux and Windows. Can somebody update the xcode related file accordingly?
tools/lldb-mi/MICmnStreamStdinLinux.cpp
tools/lldb-mi/MICmnStreamStdinLinux.h
tools/lldb-mi/MICmnStreamStdinWindows.cpp
tools/lldb-mi/MICmnStreamStdinWindows.h"
llvm-svn: 230401
Eric Christopher [Tue, 24 Feb 2015 23:43:26 +0000 (23:43 +0000)]
Make this test not dependent upon the triple. All that was needed
was some flexibility in the check line for the comment basic block.
llvm-svn: 230400
Zachary Turner [Tue, 24 Feb 2015 23:36:12 +0000 (23:36 +0000)]
[CMake] Clean up lldb-mi CMakeLists.txt.
It was maintaining two huge file lists that are identical except
for 1 file. Make this work the proper way.
llvm-svn: 230398
Philip Reames [Tue, 24 Feb 2015 23:34:24 +0000 (23:34 +0000)]
More GC doc cleanup
Mostly minor wording changes for readability. Nothing major to see here.
llvm-svn: 230397
Zachary Turner [Tue, 24 Feb 2015 23:32:47 +0000 (23:32 +0000)]
[CMake] Set policy CMP0051 to OLD globally.
When you use generator expressions in a library sources list,
and then later access the SOURCES property, the OLD behavior
(CMake 3.0 and earlier) would not include these expressions in
the SOURCES property. The NEW behavior (starting in CMake 3.1)
is that they do include the generator expressions in the SOURCES
property.
Differential Revision: http://reviews.llvm.org/D7870
Reviewed By: Chris Bieneman
llvm-svn: 230396
Jacques Pienaar [Tue, 24 Feb 2015 23:23:24 +0000 (23:23 +0000)]
clang-format: Change location of stashed token
Commit of patch in http://reviews.llvm.org/D7871
llvm-svn: 230395
Peter Collingbourne [Tue, 24 Feb 2015 23:17:02 +0000 (23:17 +0000)]
LowerBitSets: Introduce global layout builder.
The builder is based on a layout algorithm that tries to keep members of
small bit sets together. The new layout compresses Chromium's bit sets to
around 15% of their original size.
Differential Revision: http://reviews.llvm.org/D7796
llvm-svn: 230394
Philip Reames [Tue, 24 Feb 2015 23:12:27 +0000 (23:12 +0000)]
Improve the getting started instructions in the GC docs
This is still gcroot vs gc.statepoint agnostic. I'm just trying to clarify the general documentation at this point.
llvm-svn: 230393
David Majnemer [Tue, 24 Feb 2015 23:08:13 +0000 (23:08 +0000)]
PrologEpilogInserter: Clean up math in calculateFrameObjectOffsets
There is no need to open-code the alignment calculation, we have a
handy RoundUpToAlignment function which "Does The Right Thing (TM)".
llvm-svn: 230392
Sanjay Patel [Tue, 24 Feb 2015 22:43:06 +0000 (22:43 +0000)]
remove function names from comments; NFC
llvm-svn: 230391
Oleksiy Vyalov [Tue, 24 Feb 2015 22:23:39 +0000 (22:23 +0000)]
Fix qLaunchGDBServer packet parsing in GDBRemoteCommunicationServerPlatform.
llvm-svn: 230390
Zachary Turner [Tue, 24 Feb 2015 22:17:57 +0000 (22:17 +0000)]
Resubmit "[CMake] Change lldbAPI to be a CMake OBJECT library."
This resubmits r230380. The primary cause of the failure was
actually just a warning, which we can disable at the CMake level
in a followup patch on the LLVM side. The other thing which was
actually an error on the bot should be able to be fixed with
a clean.
llvm-svn: 230389
Simon Pilgrim [Tue, 24 Feb 2015 22:08:56 +0000 (22:08 +0000)]
Reapplied D7816 & rL230177 & rL230278 - with an additional fix toensure that the smallest build vector input scalar type is always used. Additional (crash) test cases already committed.
llvm-svn: 230388
Justin Bogner [Tue, 24 Feb 2015 21:49:28 +0000 (21:49 +0000)]
InstrProf: Simplify a couple of tests after r230383
Most of the checks in these two tests were actually testing the
behaviour of the instrprof LLVM pass. Now that we're testing that
specifically in LLVM's test suite, it's better if we only test the
frontend's behaviour here.
llvm-svn: 230387
Simon Pilgrim [Tue, 24 Feb 2015 21:46:23 +0000 (21:46 +0000)]
Added test case for PR22678 (check CONCAT_VECTORS DAG combiner pass doesn't introduce illegal types)
llvm-svn: 230386
Jacques Pienaar [Tue, 24 Feb 2015 21:45:33 +0000 (21:45 +0000)]
CUDA: Add option to allow host device functions to call host functions
Commiting code from review http://reviews.llvm.org/D7841
llvm-svn: 230385
Richard Smith [Tue, 24 Feb 2015 21:44:43 +0000 (21:44 +0000)]
PR22673 again: diagnose use of the used decl, not the found decl. This is also
wrong (DiagnoseUseOfDecl should take both), but it's more consistent with what
we do in other places.
llvm-svn: 230384
Justin Bogner [Tue, 24 Feb 2015 21:42:42 +0000 (21:42 +0000)]
InstrProf: Test for appropriate linkage of the profiling structures
This test checks that the symbols instrprof creates have appropriate
linkage. The tests already exist in clang in a slightly different form
from before we sunk profile generation into an LLVM pass, but that's
an awkward place for them now. I'll remove/simplify the clang versions
shortly.
llvm-svn: 230383
Zachary Turner [Tue, 24 Feb 2015 21:28:01 +0000 (21:28 +0000)]
Revert "[CMake] Change lldbAPI to be a CMake OBJECT library."
This reverts commit r230380. It causes CMake to fail on certain
machines with an error about needing to use string(STRIP_GENEX).
llvm-svn: 230382
Richard Smith [Tue, 24 Feb 2015 21:16:19 +0000 (21:16 +0000)]
PR22673: Don't forget to check a constructor for deletedness when we use it to
implicitly construct a temporary in a reference binding.
llvm-svn: 230381
Zachary Turner [Tue, 24 Feb 2015 20:58:39 +0000 (20:58 +0000)]
[CMake] Change lldbAPI to be a CMake OBJECT library.
An OBJECT library is a special type of CMake library that produces
no archive, has no link interface, and no link inputs. It is like
a regular archive, just without the physical output. To link
against an OBJECT library, you reference it in the *source* file
list of a library using the special syntax $<TARGET_OBJECTS:lldbAPI>.
This will cause every object file to be passed to the linker
independently, as opposed to a single archive being passed to the
linker.
This is *extremely* important on Windows. lldbAPI exports all of the
SB classes using __declspec(dllexport). Unfortunately for technical
reasons it is not possible (well, extremely difficult) to get the
linker to propagate a __declspec(dllexport) attribute from a symbol
in an object file in an archive to a DLL that links against that
archive. The solution to this is for the DLL to link the object files
directly. So lldbAPI must be an OBJECT library.
This fixes an issue that has been present since the duplicated
lldbAPI file lists were removed, which would cause linker failures.
As a side effect, this also makes LLDB_DISABLE_PYTHON=1 work again
on Windows, which was previously totally broken.
llvm-svn: 230380
Zachary Turner [Tue, 24 Feb 2015 20:58:24 +0000 (20:58 +0000)]
[CMake] Don't automatically copy python27.dll.
This is generating problems when you have built both debug and
release python. For now I just want to get CMake to work, I
will work on a more robust fix later. In the meantime you may
need to copy python27(_d).dll manually to ninja\bin after
building.
llvm-svn: 230379
Andrew Kaylor [Tue, 24 Feb 2015 20:49:35 +0000 (20:49 +0000)]
Fixing eol-style
llvm-svn: 230378
Richard Smith [Tue, 24 Feb 2015 20:41:36 +0000 (20:41 +0000)]
Add test that we reject invocations of deleted constructors. One of these
constructs is not rejected by should be; that's PR22673.
llvm-svn: 230370
Hans Wennborg [Tue, 24 Feb 2015 20:36:40 +0000 (20:36 +0000)]
ReleaseNotes: add notes about VS2014 Update 4 requirement
llvm-svn: 230363
Reid Kleckner [Tue, 24 Feb 2015 20:29:40 +0000 (20:29 +0000)]
MS extensions: Properly diagnose address of MS property decl
Summary: Fixes PR22671.
Reviewers: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D7863
llvm-svn: 230362
Arch D. Robison [Tue, 24 Feb 2015 20:11:49 +0000 (20:11 +0000)]
Fix typo: qual -> equal
llvm-svn: 230361
Jonathan Roelofs [Tue, 24 Feb 2015 20:09:29 +0000 (20:09 +0000)]
Add .fpu directives to ARM unwind save & restore functions.
TODO: The iwmmx register save & restore functions still need the same treatment.
I didn't do that in this patch because the integrated assembler has a bug
where it refuses to build them on -march=armv6-m, even with
.march armv5t
.arm
in front of those functions.
This should fix PR22384.
http://reviews.llvm.org/D7258
llvm-svn: 230360
Philip Reames [Tue, 24 Feb 2015 19:44:46 +0000 (19:44 +0000)]
Starting to cleanup the garbage collection documentation
In this change:
- Put the getting started section first
- Create a dedicated section to document the built in collector strategies
- Move discuss of ShadowStack into new section
- Add placeholders for erlang, ocaml, and statepoint-example collectors
There will be many more changes following. I plan on full integrating the documentation for gc.statepoint and gc.root. I want to make it much clearer on how to get started and what users should expect in terms of effort.
llvm-svn: 230359
Eric Christopher [Tue, 24 Feb 2015 19:11:00 +0000 (19:11 +0000)]
Revert:
Author: Simon Pilgrim <llvm-dev@redking.me.uk>
Date: Mon Feb 23 23:04:28 2015 +0000
Fix based on post-commit comment on D7816 & rL230177 - BUILD_VECTOR operand truncation was using the the BV's output scalar type instead of the input type.
and
Author: Simon Pilgrim <llvm-dev@redking.me.uk>
Date: Sun Feb 22 18:17:28 2015 +0000
[DagCombiner] Generalized BuildVector Vector Concatenation
The CONCAT_VECTORS combiner pass can transform the concat of two BUILD_VECTOR nodes into a single BUILD_VECTOR node.
This patch generalises this to support any number of BUILD_VECTOR nodes, and also permits UNDEF nodes to be included as well.
This was noticed as AVX vec128 -> vec256 canonicalization sometimes creates a CONCAT_VECTOR with a real vec128 lower and an vec128 UNDEF upper.
Differential Revision: http://reviews.llvm.org/D7816
as the root cause of PR22678 which is causing an assertion inside the DAG combiner.
I'll follow up to the main thread as well.
llvm-svn: 230358
Eric Christopher [Tue, 24 Feb 2015 19:10:57 +0000 (19:10 +0000)]
Rename UpdateRegAllocHint to match style guidelines.
llvm-svn: 230357
Kostya Serebryany [Tue, 24 Feb 2015 18:52:38 +0000 (18:52 +0000)]
[asan] fix odr-violation.cc test to always use slow unwinding (hopefully fixes the ARM bot)
llvm-svn: 230356
Matthias Braun [Tue, 24 Feb 2015 18:52:04 +0000 (18:52 +0000)]
AArch64: Relax assert about large shift sizes.
The reason why these large shift sizes happen is because OpaqueConstants
currently inhibit alot of DAG combining, but that has to be addressed in
another commit (like the proposal in D6946).
Differential Revision: http://reviews.llvm.org/D6940
llvm-svn: 230355
Matthias Braun [Tue, 24 Feb 2015 18:52:01 +0000 (18:52 +0000)]
DAGCombiner: Move variable definitions closer to use; NFC
llvm-svn: 230354
Matthias Braun [Tue, 24 Feb 2015 18:51:59 +0000 (18:51 +0000)]
DAGCombiner: Move variable declaration closer to definiion; NFC
llvm-svn: 230353
Tom Stellard [Tue, 24 Feb 2015 17:59:19 +0000 (17:59 +0000)]
R600/SI: Remove isel mubuf legalization
We legalize mubuf instructions post-instruction selection, so this
code is no longer needed.
llvm-svn: 230352
Ilia K [Tue, 24 Feb 2015 17:54:34 +0000 (17:54 +0000)]
Add comment in MiSignalTestCase.test_lldbmi_stopped_when_stopatentry_local back and revert expecting string.
llvm-svn: 230351
Tim Northover [Tue, 24 Feb 2015 17:22:40 +0000 (17:22 +0000)]
ARM: Simplify PCS handling.
The backend should now be able to handle all AAPCS rules based on argument
type, which means Clang no longer has to duplicate the register-counting logic
and the CodeGen can be significantly simplified.
llvm-svn: 230349
Tim Northover [Tue, 24 Feb 2015 17:22:34 +0000 (17:22 +0000)]
ARM: treat [N x i32] and [N x i64] as AAPCS composite types
The logic is almost there already, with our special homogeneous aggregate
handling. Tweaking it like this allows front-ends to emit AAPCS compliant code
without ever having to count registers or add discarded padding arguments.
Only arrays of i32 and i64 are needed to model AAPCS rules, but I decided to
apply the logic to all integer arrays for more consistency.
llvm-svn: 230348
Hafiz Abid Qadeer [Tue, 24 Feb 2015 17:20:43 +0000 (17:20 +0000)]
Adjust an lldb-mi test to fix failure on Linux.
llvm-svn: 230347
Hafiz Abid Qadeer [Tue, 24 Feb 2015 17:08:20 +0000 (17:08 +0000)]
Remove redundant code from lldb-mi.
Summary:
After recent changes, some code has become redundant. This revision tries to remove
the un-used code and tidy up the rest.
Following 4 files have been removed. I have updated CMake files and checked that it builds
fine on Linux and Windows. Can somebody update the xcode related file accordingly?
tools/lldb-mi/MICmnStreamStdinLinux.cpp
tools/lldb-mi/MICmnStreamStdinLinux.h
tools/lldb-mi/MICmnStreamStdinWindows.cpp
tools/lldb-mi/MICmnStreamStdinWindows.h
Reviewers: clayborg, ki.stfu
Reviewed By: clayborg, ki.stfu
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D7834
llvm-svn: 230345
Timur Iskhodzhanov [Tue, 24 Feb 2015 17:07:22 +0000 (17:07 +0000)]
[ASan/Win] Add support for sanitizer allocator hooks, __asan_default_options and __asan_on_error
llvm-svn: 230344
Tobias Grosser [Tue, 24 Feb 2015 16:39:46 +0000 (16:39 +0000)]
Revert "Raising minimum required CMake version to 2.8.12.2."
This reverts commit r230062.
Debian stable (wheezy) ships still with cmake 2.8.9.
The commit broke my LLVM/Polly buildbot, to my knowledge our only Linux+cmake
buildbot.
llvm-svn: 230343
Sanjay Patel [Tue, 24 Feb 2015 16:26:02 +0000 (16:26 +0000)]
simplify control flow; NFC
llvm-svn: 230342
Hans Wennborg [Tue, 24 Feb 2015 16:19:29 +0000 (16:19 +0000)]
Revert r230280: "Bugfix: SCEVExpander incorrectly marks increment operations as no-wrap"
This caused PR22674, failing this assert:
Instructions.h:2281: llvm::Value* llvm::PHINode::getOperand(unsigned int) const: Assertion `i_nocapture < OperandTraits<PHINode>::operands(this) && "getOperand() out of range!"' failed.
llvm-svn: 230341
Johannes Doerfert [Tue, 24 Feb 2015 16:16:32 +0000 (16:16 +0000)]
Allow non-affine control flow -- Code Generation
This is the code generation for region statements that are created
when non-affine control flow was present in the input. A new
generator, similar to the block or vector generator, for regions is
used to traverse and copy the region statement and to adjust the
control flow inside the new region in the end.
llvm-svn: 230340
Michael Kuperstein [Tue, 24 Feb 2015 16:13:16 +0000 (16:13 +0000)]
[x32] Mark RBX as reserved when EBX is the base pointer.
This should have gone into r230334.
llvm-svn: 230339
Sanjay Patel [Tue, 24 Feb 2015 16:11:05 +0000 (16:11 +0000)]
fix typo in comment; NFC
llvm-svn: 230338
Johannes Doerfert [Tue, 24 Feb 2015 16:02:16 +0000 (16:02 +0000)]
Omit a default argument
llvm-svn: 230337