platform/upstream/llvm.git
9 years agoVerifier: Check for valid tags in debug nodes
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 01:40:40 +0000 (01:40 +0000)]
Verifier: Check for valid tags in debug nodes

Check that specialized `DebugNode`s have valid `DW_TAG`s.

llvm-svn: 228649

9 years agoIR: Add accessors to MDExpression
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 01:36:46 +0000 (01:36 +0000)]
IR: Add accessors to MDExpression

Add some accessors to `MDExpression`.

llvm-svn: 228648

9 years agoVerifier: Add simple checks for MDLocation
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 01:32:56 +0000 (01:32 +0000)]
Verifier: Add simple checks for MDLocation

llvm-svn: 228647

9 years agoDriver: Replace switch cases with ifs.
Rui Ueyama [Tue, 10 Feb 2015 01:10:23 +0000 (01:10 +0000)]
Driver: Replace switch cases with ifs.

We used to do like this instead of putting all command line processing
code within one gigantic switch statement. It is converted to a switch
in r188958, which introduced InputGraph.

In this patch I roll that change back. Now all "break"s are removed,
and the nesting is one level shallow.

llvm-svn: 228646

9 years agoVerifier: Create stubs for specialized metadata nodes
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 01:09:50 +0000 (01:09 +0000)]
Verifier: Create stubs for specialized metadata nodes

llvm-svn: 228645

9 years agoAsmParser: Add stubs for specialized MDNodes, NFC
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 01:08:16 +0000 (01:08 +0000)]
AsmParser: Add stubs for specialized MDNodes, NFC

Well, the exact error from the failed parse will change, but...

llvm-svn: 228644

9 years agoRemove trailing space.
Rui Ueyama [Tue, 10 Feb 2015 01:06:14 +0000 (01:06 +0000)]
Remove trailing space.

llvm-svn: 228643

9 years agoX86: Emit an ABI compliant prologue and epilogue for Win64
David Majnemer [Tue, 10 Feb 2015 00:57:42 +0000 (00:57 +0000)]
X86: Emit an ABI compliant prologue and epilogue for Win64

Win64 has specific contraints on what valid prologues and epilogues look
like.  This constraint is born from the flexibility and descriptiveness
of Win64's unwind opcodes.

Prologues previously emitted by LLVM could not be represented by the
unwind opcodes, preventing operations powered by stack unwinding to
successfully work.

Differential Revision: http://reviews.llvm.org/D7520

llvm-svn: 228641

9 years agoIR: Add specialized debug info metadata nodes
Duncan P. N. Exon Smith [Tue, 10 Feb 2015 00:52:32 +0000 (00:52 +0000)]
IR: Add specialized debug info metadata nodes

Add specialized debug info metadata nodes that match the `DIDescriptor`
wrappers (used by `DIBuilder`) closely.  Assembly and bitcode support to
follow soon (it'll mostly just be obvious), but this sketches in today's
schema.  This is the first big commit (well, the only *big* one aside
from the testcase changes that'll come when I move this into place) for
PR22464.

I've marked a bunch of obvious changes as `TODO`s in the source; I plan
to make those changes promptly after this hierarchy is moved underneath
`DIDescriptor`, but for now I'm aiming mostly to match the status quo.

llvm-svn: 228640

9 years agoAdd JSON.cpp to CMakeLists.txt
Chaoren Lin [Tue, 10 Feb 2015 00:47:43 +0000 (00:47 +0000)]
Add JSON.cpp to CMakeLists.txt

llvm-svn: 228639

9 years agoMigrate PPCAsmPrinter's subtarget from reference to pointer in
Eric Christopher [Tue, 10 Feb 2015 00:44:17 +0000 (00:44 +0000)]
Migrate PPCAsmPrinter's subtarget from reference to pointer in
preparation for making it MachineFunction dependent.

llvm-svn: 228638

9 years ago[Orc] Back out one of the GCC ICE workarounds from r228568. NFC.
Lang Hames [Tue, 10 Feb 2015 00:37:26 +0000 (00:37 +0000)]
[Orc] Back out one of the GCC ICE workarounds from r228568. NFC.

llvm-svn: 228637

9 years agoAdd a JSON producer to LLDB - this is a set of classes that encapsulate JSON objects...
Enrico Granata [Tue, 10 Feb 2015 00:30:07 +0000 (00:30 +0000)]
Add a JSON producer to LLDB - this is a set of classes that encapsulate JSON objects and allow you to write them to a Stream for subsequent processing

Using this JSON producer, write a little tool that expands its own command-line arguments and dumps them to stdout as a JSON array

llvm-svn: 228636

9 years agoFix the clang -Werror build (-Wunused-variable)
David Blaikie [Tue, 10 Feb 2015 00:16:36 +0000 (00:16 +0000)]
Fix the clang -Werror build (-Wunused-variable)

llvm-svn: 228635

9 years agoAdjust how we avoid poll insertion inside the poll function (NFC)
Philip Reames [Tue, 10 Feb 2015 00:04:53 +0000 (00:04 +0000)]
Adjust how we avoid poll insertion inside the poll function (NFC)

I realized that my early fix for this was overly complicated.  Rather than scatter checks around in a bunch of places, just exit early when we visit the poll function itself.

Thinking about it a bit, the whole inlining mechanism used with gc.safepoint_poll could probably be cleaned up a bit.  Originally, poll insertion was fused with gc relocation rewriting.  It might be worth going back to see if we can simplify the chain of events now that these two are seperated.  As one thought, maybe it makes sense to rewrite calls inside the helper function before inlining it to the many callers.  This would require us to visit the poll function before any other functions though..

llvm-svn: 228634

9 years agoReverting r228628; it broke at least one builder due to the forward declare of RaiseE...
Aaron Ballman [Tue, 10 Feb 2015 00:00:54 +0000 (00:00 +0000)]
Reverting r228628; it broke at least one builder due to the forward declare of RaiseException.

llvm-svn: 228633

9 years agoDebug info: When updating debug info during SROA, do not emit debug info
Adrian Prantl [Mon, 9 Feb 2015 23:57:22 +0000 (23:57 +0000)]
Debug info: When updating debug info during SROA, do not emit debug info
for any padding introduced by SROA. In particular, do not emit debug info
for an alloca that represents only the padding introduced by a previous
iteration.

Fixes PR22495.

llvm-svn: 228632

9 years agoDebug info: Use DW_OP_bit_piece instead of DW_OP_piece in the
Adrian Prantl [Mon, 9 Feb 2015 23:57:15 +0000 (23:57 +0000)]
Debug info: Use DW_OP_bit_piece instead of DW_OP_piece in the
intermediate representation. This
- increases consistency by using the same granularity everywhere
- allows for pieces < 1 byte
- DW_OP_piece didn't actually allow storing an offset.

Part of PR22495.

llvm-svn: 228631

9 years ago[Hexagon] Adding missing load instructions and removing an unused multiclass parameter.
Colin LeMahieu [Mon, 9 Feb 2015 23:45:24 +0000 (23:45 +0000)]
[Hexagon] Adding missing load instructions and removing an unused multiclass parameter.

llvm-svn: 228630

9 years agoADT: Allow up to 18 arguments in hash_combine()
Duncan P. N. Exon Smith [Mon, 9 Feb 2015 23:21:05 +0000 (23:21 +0000)]
ADT: Allow up to 18 arguments in hash_combine()

I just realized that the specialized metadata node patch I'm about to
commit won't compile on old compilers.  Bump `hash_combine()`'s support
for non-variadic templates to 18 (I tested this by reversing the logic
in the #ifdef).

llvm-svn: 228629

9 years agoOn Windows, we now use RaiseException to generate the kind of trap we require (one...
Aaron Ballman [Mon, 9 Feb 2015 23:11:39 +0000 (23:11 +0000)]
On Windows, we now use RaiseException to generate the kind of trap we require (one which calls our vectored exception handler), and fall back to using a volatile write to simulate a trap elsewhere.

llvm-svn: 228628

9 years ago[Hexagon] Factoring classes out of some load patterns and deleting some unused ones.
Colin LeMahieu [Mon, 9 Feb 2015 23:05:44 +0000 (23:05 +0000)]
[Hexagon] Factoring classes out of some load patterns and deleting some unused ones.

llvm-svn: 228627

9 years ago[Statepoint] Improve two asserts, fix some style (NFC)
Ramkumar Ramachandra [Mon, 9 Feb 2015 23:02:10 +0000 (23:02 +0000)]
[Statepoint] Improve two asserts, fix some style (NFC)

Summary:
It's important that our users immediately know what gc.safepoint_poll
is. Also fix the style of the declaration of CreateGCStatepoint, in
preparation for another change that will wrap it.

Reviewers: reames

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D7517

llvm-svn: 228626

9 years agoPlaceSafepoints: modernize gc.result.* -> gc.result
Ramkumar Ramachandra [Mon, 9 Feb 2015 23:00:40 +0000 (23:00 +0000)]
PlaceSafepoints: modernize gc.result.* -> gc.result

Differential Revision: http://reviews.llvm.org/D7516

llvm-svn: 228625

9 years ago[Static Analyzer] The name of the checker that reports a bug is added
Gabor Horvath [Mon, 9 Feb 2015 22:52:26 +0000 (22:52 +0000)]
[Static Analyzer] The name of the checker that reports a bug is added
to the plist output. This check_name field does not guaranteed to be the
same as the name of the checker in the future.

Reviewer: Anna Zaks

Differential Revision: http://reviews.llvm.org/D6841

llvm-svn: 228624

9 years agoDebugInfo: Remove DW_TAG_constant
Duncan P. N. Exon Smith [Mon, 9 Feb 2015 22:48:04 +0000 (22:48 +0000)]
DebugInfo: Remove DW_TAG_constant

Remove handling for DW_TAG_constant.  We started producing it in
r110656, but reverted that in r110876 without dropping the support.
Finish the job.

llvm-svn: 228623

9 years agoUpdate file comment to clarify points highlighted in review (NFC)
Philip Reames [Mon, 9 Feb 2015 22:44:03 +0000 (22:44 +0000)]
Update file comment to clarify points highlighted in review (NFC)

llvm-svn: 228621

9 years agoUse range for loops in PlaceSafepoints (NFC)
Philip Reames [Mon, 9 Feb 2015 22:26:11 +0000 (22:26 +0000)]
Use range for loops in PlaceSafepoints (NFC)

llvm-svn: 228620

9 years agoIR: Take uint64_t in DIBuilder::createExpression()
Duncan P. N. Exon Smith [Mon, 9 Feb 2015 22:13:27 +0000 (22:13 +0000)]
IR: Take uint64_t in DIBuilder::createExpression()

`DIExpression` deals with `uint64_t`, so it doesn't make sense that
`createExpression()` is created from `int64_t`.  Switch to `uint64_t` to
unify them.

I've temporarily left in the `int64_t` version, which forwards to the
`uint64_t` version.  I'll delete it once I've updated the callers.

llvm-svn: 228619

9 years agoIntroduce more tests for PlaceSafepoints
Philip Reames [Mon, 9 Feb 2015 22:10:15 +0000 (22:10 +0000)]
Introduce more tests for PlaceSafepoints

These tests the two optimizations for backedge insertion currently implemented and the split backedge flag which is currently off by default.

llvm-svn: 228617

9 years agoRevert "Raising minimum required CMake version to 2.8.12.2."
Chris Bieneman [Mon, 9 Feb 2015 22:07:49 +0000 (22:07 +0000)]
Revert "Raising minimum required CMake version to 2.8.12.2."

This reverts commit add62ac537d8249fa2161405066e318ca80e199d.

llvm-svn: 228616

9 years agoRaising minimum required CMake version to 2.8.12.2.
Chris Bieneman [Mon, 9 Feb 2015 22:05:07 +0000 (22:05 +0000)]
Raising minimum required CMake version to 2.8.12.2.

llvm-svn: 228615

9 years ago[Hexagon] Removing more V4 predicates since V4 is the required minimum.
Colin LeMahieu [Mon, 9 Feb 2015 21:56:37 +0000 (21:56 +0000)]
[Hexagon] Removing more V4 predicates since V4 is the required minimum.

llvm-svn: 228614

9 years agoBe more conservative about gethostname()'s truncating behaviour
Ben Langmuir [Mon, 9 Feb 2015 21:55:44 +0000 (21:55 +0000)]
Be more conservative about gethostname()'s truncating behaviour

Don't assume it will provide an error or null-terminate the string on
truncation, since POSIX doesn't guarantee either behaviour (although
Linux and Darwin at least will do the 'right thing').

llvm-svn: 228613

9 years agoMinor test cleanup
Philip Reames [Mon, 9 Feb 2015 21:50:31 +0000 (21:50 +0000)]
Minor test cleanup

a) add gc attribute
b) remove unused param

llvm-svn: 228612

9 years agoMemDerefPrinter: Require DataLayoutPass for higher accuracy
Ramkumar Ramachandra [Mon, 9 Feb 2015 21:50:03 +0000 (21:50 +0000)]
MemDerefPrinter: Require DataLayoutPass for higher accuracy

Without a valid data layout, deferenceable(N) doesn't get parsed or
propagated. Since this is the key item we are testing, add a dependency
on the pass.

Differential Revision: http://reviews.llvm.org/D7508

llvm-svn: 228611

9 years agoAdd basic tests for PlaceSafepoints
Philip Reames [Mon, 9 Feb 2015 21:48:05 +0000 (21:48 +0000)]
Add basic tests for PlaceSafepoints

This is just adding really simple tests which should have been part of the original submission.  When doing so, I discovered that I'd mistakenly removed required pieces when preparing the patch for upstream submission.  I fixed two such bugs in this submission.

llvm-svn: 228610

9 years agoVerifier: Const-qualify Metadata, NFC
Duncan P. N. Exon Smith [Mon, 9 Feb 2015 21:30:05 +0000 (21:30 +0000)]
Verifier: Const-qualify Metadata, NFC

llvm-svn: 228609

9 years agoIR: Document horrible abuse of loose DIDescriptor, NFC
Duncan P. N. Exon Smith [Mon, 9 Feb 2015 21:26:34 +0000 (21:26 +0000)]
IR: Document horrible abuse of loose DIDescriptor, NFC

I'll circle back and fix this somehow; for now I just don't want to
forget about it.

llvm-svn: 228608

9 years agoIR: Remove dead code in DITemplate*
Duncan P. N. Exon Smith [Mon, 9 Feb 2015 21:23:34 +0000 (21:23 +0000)]
IR: Remove dead code in DITemplate*

These are never referenced or filled in.

llvm-svn: 228607

9 years agoisDereferenceablePointer: look through gc.relocate calls
Ramkumar Ramachandra [Mon, 9 Feb 2015 21:08:03 +0000 (21:08 +0000)]
isDereferenceablePointer: look through gc.relocate calls

While a theoretical GC might change dereferenceability on collection,
there is no such known collector and no need to account for the case
with a flag yet.

Differential Revision: http://reviews.llvm.org/D7454

llvm-svn: 228606

9 years ago[Hexagon] Removing v2-4 flags. V4 is the minimum supported version.
Colin LeMahieu [Mon, 9 Feb 2015 21:07:35 +0000 (21:07 +0000)]
[Hexagon] Removing v2-4 flags.  V4 is the minimum supported version.

llvm-svn: 228605

9 years agoDiagnose timeouts in the LockFileManager and delete the dead lock file
Ben Langmuir [Mon, 9 Feb 2015 20:35:13 +0000 (20:35 +0000)]
Diagnose timeouts in the LockFileManager and delete the dead lock file

If the lock file manager times out, we should give an error rather than
silently trying to load the existing module.  And delete the
(presumably) dead lock file, since it will otherwise prevent progress in
future invokations. This is unsound since we have no way to prove that
the lock file we are deleting is the same one we timed out on, but since
the lock is only to avoid excessive rebuilding anyway it should be okay.
Depends on llvm r228603.

llvm-svn: 228604

9 years agoReduce the LockFileManager timeout, and provide unsafeRemoveLockFile
Ben Langmuir [Mon, 9 Feb 2015 20:34:24 +0000 (20:34 +0000)]
Reduce the LockFileManager timeout, and provide unsafeRemoveLockFile

5 minutes is an eternity, so try to strike a better balance between
waiting long enough for any reasonable module build and not so long that
users kill the process because they think it's hanging.

Also give the client a way to delete the lock file after a timeout.

llvm-svn: 228603

9 years ago[Hexagon] Factoring classes out of store patterns.
Colin LeMahieu [Mon, 9 Feb 2015 20:33:46 +0000 (20:33 +0000)]
[Hexagon] Factoring classes out of store patterns.

llvm-svn: 228602

9 years agoUpdate r228592 for when gethostname() returns an error
Ben Langmuir [Mon, 9 Feb 2015 20:13:11 +0000 (20:13 +0000)]
Update r228592 for when gethostname() returns an error

If gethostname() is not successful, just skip adding the hostname to the
module hash.  And don't bother setting hostname[255] = 0, since if
gethostname() is successful, it will be null-terminated already (and if
it's not successful we don't read the string now.

llvm-svn: 228601

9 years ago[Hexagon] Formatting v5 TD file. Removing commented defs.
Colin LeMahieu [Mon, 9 Feb 2015 20:03:42 +0000 (20:03 +0000)]
[Hexagon] Formatting v5 TD file.  Removing commented defs.

llvm-svn: 228598

9 years agoMemDepPrinter: cleanup a few loops (NFC)
Ramkumar Ramachandra [Mon, 9 Feb 2015 19:49:54 +0000 (19:49 +0000)]
MemDepPrinter: cleanup a few loops (NFC)

Make use of the newly introduced inst_range to clean up two loops. Clean
up a third one while at it.

Differential Revision: http://reviews.llvm.org/D7455

llvm-svn: 228596

9 years agoAddress post-commit review for rL228587: make it explicit that the
Sanjoy Das [Mon, 9 Feb 2015 19:39:00 +0000 (19:39 +0000)]
Address post-commit review for rL228587: make it explicit that the
<NW> bit of a SCEVAddRecExpr does not depend on the sign of the step
and the start value of the step.

llvm-svn: 228595

9 years agoAdd missing include from r228592
Ben Langmuir [Mon, 9 Feb 2015 19:30:29 +0000 (19:30 +0000)]
Add missing include from r228592

llvm-svn: 228594

9 years ago[Hexagon] Cleaning up definition formatting.
Colin LeMahieu [Mon, 9 Feb 2015 19:24:44 +0000 (19:24 +0000)]
[Hexagon] Cleaning up definition formatting.

llvm-svn: 228593

9 years agoAdd the hostname to the module hash to avoid sharing between hosts
Ben Langmuir [Mon, 9 Feb 2015 19:23:08 +0000 (19:23 +0000)]
Add the hostname to the module hash to avoid sharing between hosts

Sharing between hosts will cause problems for the LockFileManager, which
can timeout waiting for a process that has already died.

llvm-svn: 228592

9 years agoDebugInfo: Refactor default arg handling into a common place (instead of handling...
David Blaikie [Mon, 9 Feb 2015 19:13:51 +0000 (19:13 +0000)]
DebugInfo: Refactor default arg handling into a common place (instead of handling in repeatedly for aggregate, complex, and scalar types)

llvm-svn: 228591

9 years agoDont' use O_CLOEXEC on Windows, since it doesn't exist.
Zachary Turner [Mon, 9 Feb 2015 19:13:46 +0000 (19:13 +0000)]
Dont' use O_CLOEXEC on Windows, since it doesn't exist.

llvm-svn: 228590

9 years agoDebugInfo: Suppress the location of instructions in complex default arguments.
David Blaikie [Mon, 9 Feb 2015 18:55:57 +0000 (18:55 +0000)]
DebugInfo: Suppress the location of instructions in complex default arguments.

llvm-svn: 228589

9 years agoDebugInfo: Suppress the location of instructions in aggregate default arguments.
David Blaikie [Mon, 9 Feb 2015 18:47:14 +0000 (18:47 +0000)]
DebugInfo: Suppress the location of instructions in aggregate default arguments.

Matches the existing code for scalar default arguments. Complex default
arguments probably need the same handling too (test/fix to that coming
next).

llvm-svn: 228588

9 years agoClarify the wording on what it means for a SCEVAddRecExpr to be <NW>.
Sanjoy Das [Mon, 9 Feb 2015 18:44:42 +0000 (18:44 +0000)]
Clarify the wording on what it means for a SCEVAddRecExpr to be <NW>.

llvm-svn: 228587

9 years agoBugfix: SCEV incorrectly marks certain add recurrences as nsw
Sanjoy Das [Mon, 9 Feb 2015 18:34:55 +0000 (18:34 +0000)]
Bugfix: SCEV incorrectly marks certain add recurrences as nsw

When creating a scev for sext({X,+,Y}), scev checks if the expression
is equivalent to {sext X,+,zext Y}.  If it can prove that, it also
tags the original {X,+,Y} as <nsw>, which is not correct.

In the test case I run `-scalar-evolution` twice because the bug
manifests only once SCEV has run through and seen the `sext`
expressions (and then does a in-place mutation on {X,+,Y}).

Differential Revision: http://reviews.llvm.org/D7495

llvm-svn: 228586

9 years ago[Orc] Revert r228567 (GCC ICE workaround) - it doesn't seem to have helped.
Lang Hames [Mon, 9 Feb 2015 18:16:43 +0000 (18:16 +0000)]
[Orc] Revert r228567 (GCC ICE workaround) - it doesn't seem to have helped.

As far as I can tell r228568 was the right workaround, and r228567 was
unnecessary. If reverting this causes problems on the bots I'll reinstate it.

llvm-svn: 228585

9 years agoFix MI notification test case on Linux.
Hafiz Abid Qadeer [Mon, 9 Feb 2015 18:14:01 +0000 (18:14 +0000)]
Fix MI notification test case on Linux.

This test case was checking for a specific stop reason which is different on
Linux. This caused the test to fail. It now only checks for stoppped. Also added
some more steps to run to main so that we dont pass when application has run to
completion.

llvm-svn: 228584

9 years agoVerify assign operator signatures.
Samuel Benzaquen [Mon, 9 Feb 2015 17:50:40 +0000 (17:50 +0000)]
Verify assign operator signatures.

Summary: Warn when the return type of assign operators is not Class&.

Reviewers: alexfh

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D6667

llvm-svn: 228583

9 years agoFix TestFdLeak.py on Mac.
Pavel Labath [Mon, 9 Feb 2015 17:42:47 +0000 (17:42 +0000)]
Fix TestFdLeak.py on Mac.

bug introduced in D7466. For some reason target.Launch behaves differently on linux and mac.

llvm-svn: 228582

9 years agofixed to test features, not CPUs
Sanjay Patel [Mon, 9 Feb 2015 17:17:09 +0000 (17:17 +0000)]
fixed to test features, not CPUs

llvm-svn: 228581

9 years agoThis change implements the following three logical vector operations:
Kit Barton [Mon, 9 Feb 2015 17:03:18 +0000 (17:03 +0000)]
This change implements the following three logical vector operations:

veqv (vector equivalence)
vnand
vorc
I increased the AddedComplexity for these instructions to 500 to ensure they are generated instead of issuing other VSX instructions.

Phabricator review: http://reviews.llvm.org/D7469

llvm-svn: 228580

9 years agorename variable to give it some meaning; remove obvious comments; NFC
Sanjay Patel [Mon, 9 Feb 2015 16:30:58 +0000 (16:30 +0000)]
rename variable to give it some meaning; remove obvious comments; NFC

llvm-svn: 228579

9 years agofix comment that didn't match the code; remove unnecessary braces; NFC
Sanjay Patel [Mon, 9 Feb 2015 16:04:52 +0000 (16:04 +0000)]
fix comment that didn't match the code; remove unnecessary braces; NFC

llvm-svn: 228578

9 years agoFix test case for data-disassemble instruction in lldb-mi.
Hafiz Abid Qadeer [Mon, 9 Feb 2015 14:34:12 +0000 (14:34 +0000)]
Fix test case for data-disassemble instruction in lldb-mi.

Previously the offset field showed the offset from the section base.
I have fixed it so that first disassembled instruction has offset of 0.
Also made a little modification in the test case to match the output coming
form the lldb-mi.

llvm-svn: 228577

9 years agoFix test case failure on Linux.
Hafiz Abid Qadeer [Mon, 9 Feb 2015 13:54:51 +0000 (13:54 +0000)]
Fix test case failure on Linux.
The test case were failing becuase my test compiler was gcc. The generated
code behaved a bit differently to the how the test expected. Adjusted a few
lines so that it works on both gcc and clang.

llvm-svn: 228576

9 years agoisl is now distributed with polly
Tobias Grosser [Mon, 9 Feb 2015 13:52:21 +0000 (13:52 +0000)]
isl is now distributed with polly

llvm-svn: 228575

9 years agoRemove forgotten file test/tools/lldb-mi/TestMiProgramArgs.py after r228286
Ilia K [Mon, 9 Feb 2015 13:18:24 +0000 (13:18 +0000)]
Remove forgotten file test/tools/lldb-mi/TestMiProgramArgs.py after r228286

llvm-svn: 228574

9 years ago[ASan/Win] Add a test case for PR22431
Timur Iskhodzhanov [Mon, 9 Feb 2015 12:47:51 +0000 (12:47 +0000)]
[ASan/Win] Add a test case for PR22431

llvm-svn: 228573

9 years agoAllow ScalarEvolution to catch more min/max cases
Johannes Doerfert [Mon, 9 Feb 2015 12:34:23 +0000 (12:34 +0000)]
Allow ScalarEvolution to catch more min/max cases

  For the attached test case different types are used in the ICmpInst
  and SelectInst that represent the min/max expressions. However, if the
  ICmpInst type is smaller a comparison with the sign/zero extended
  operands would have yielded the same result. This situation might
  arise after the instruction combination pass was applied.

  Differential Revision: http://reviews.llvm.org/D7338

llvm-svn: 228572

9 years agoUpdate cxx_status to list features implemented in Clang 3.6.
Benjamin Kramer [Mon, 9 Feb 2015 11:48:43 +0000 (11:48 +0000)]
Update cxx_status to list features implemented in Clang 3.6.

Still yellow because 3.6 is unreleased. While there make Urbana paper
links clickable and list binary literals as available in Clang 2.9
(they've been available basically since the dawn of Clang, but not
having a version number in the table looks weird)

llvm-svn: 228571

9 years agoFix descriptor leak in multi-target debugging
Pavel Labath [Mon, 9 Feb 2015 11:37:56 +0000 (11:37 +0000)]
Fix descriptor leak in multi-target debugging

Summary:
When debugging two targets concurrently, the pseude terminal master fd from the first one would
leak into the second. This fixes the problem by setting O_CLOEXEC on the master fd. Test
included.

Reviewers: clayborg, vharron

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D7466

llvm-svn: 228570

9 years ago[Orc] Try another workaround for the GCC 4.7.2 ICE introduced in r228557. NFC.
Lang Hames [Mon, 9 Feb 2015 07:47:32 +0000 (07:47 +0000)]
[Orc] Try another workaround for the GCC 4.7.2 ICE introduced in r228557. NFC.

llvm-svn: 228568

9 years ago[Orc] Tweak lambda capture lists to try to avoid an ICE on gcc-4.7.2. NFC.
Lang Hames [Mon, 9 Feb 2015 07:22:56 +0000 (07:22 +0000)]
[Orc] Tweak lambda capture lists to try to avoid an ICE on gcc-4.7.2. NFC.

Apparently gcc-4.7.2 is touchy about 'this' appearing in a lambda capture list
along with other captures. I've rewritten my captures to try to avoid the issue.

llvm-svn: 228567

9 years agoFix a bug in DemoteRegToStack where a reload instruction was inserted into the
Akira Hatanaka [Mon, 9 Feb 2015 06:38:23 +0000 (06:38 +0000)]
Fix a bug in DemoteRegToStack where a reload instruction was inserted into the
wrong basic block.

This would happen when the result of an invoke was used by a phi instruction
in the invoke's normal destination block. An instruction to reload the invoke's
value would get inserted before the critical edge was split and a new basic
block (which is the correct insertion point for the reload) was created. This
commit fixes the bug by splitting the critical edge before all the reload
instructions are inserted.

Also, hoist up the code which computes the insertion point to the only place
that need that computation.

rdar://problem/15978721

llvm-svn: 228566

9 years agoMC: Calculate intra-section symbol differences correctly for COFF
David Majnemer [Mon, 9 Feb 2015 06:31:31 +0000 (06:31 +0000)]
MC: Calculate intra-section symbol differences correctly for COFF

This fixes PR22060.

llvm-svn: 228565

9 years ago[Orc] Fix the MSVC bots by using LLVM_EXPLICIT rather than explicit.
Lang Hames [Mon, 9 Feb 2015 04:46:41 +0000 (04:46 +0000)]
[Orc] Fix the MSVC bots by using LLVM_EXPLICIT rather than explicit.

llvm-svn: 228564

9 years ago[X86] Remove 256-bit and 512-bit memop pattern fragments. They are no longer used.
Craig Topper [Mon, 9 Feb 2015 04:04:53 +0000 (04:04 +0000)]
[X86] Remove 256-bit and 512-bit memop pattern fragments. They are no longer used.

llvm-svn: 228563

9 years ago[X86] Remove 'memop' uses from AVX512. Use 'load' instead.
Craig Topper [Mon, 9 Feb 2015 04:04:50 +0000 (04:04 +0000)]
[X86] Remove 'memop' uses from AVX512. Use 'load' instead.

llvm-svn: 228562

9 years agoDeadArgElim: fix mismatch in accounting of array return types.
Tim Northover [Mon, 9 Feb 2015 01:21:00 +0000 (01:21 +0000)]
DeadArgElim: fix mismatch in accounting of array return types.

Some parts of DeadArgElim were only considering the individual fields
of StructTypes separately, but others (where insertvalue &
extractvalue instructions occur) also looked into ArrayTypes.

This one is an actual bug; the mismatch can lead to an argument being
considered used by a return sub-value that isn't being tracked (and
hence is dead by default). It then gets incorrectly eliminated.

llvm-svn: 228559

9 years agoDeadArgElim: assess uses of entire return value aggregate.
Tim Northover [Mon, 9 Feb 2015 01:20:53 +0000 (01:20 +0000)]
DeadArgElim: assess uses of entire return value aggregate.

Previously, a non-extractvalue use of an aggregate return value meant
the entire return was considered live (the algorithm gave up
entirely). This was correct, but conservative. It's better to actually
look at that Use, making the analysis results apply to all sub-values
under consideration.

E.g.

  %val = call { i32, i32 } @whatever()
  [...]
  ret { i32, i32 } %val

The return is using the entire aggregate (sub-values 0 and 1). We can
still simplify @whatever if we can prove that this return is itself
unused.

Also unifies the logic slightly between aggregate and non-aggregate
cases..

llvm-svn: 228558

9 years ago[Orc] Add a JITSymbol class to the Orc APIs, refactor APIs, update clients.
Lang Hames [Mon, 9 Feb 2015 01:20:51 +0000 (01:20 +0000)]
[Orc] Add a JITSymbol class to the Orc APIs, refactor APIs, update clients.

This patch refactors a key piece of the Orc APIs: It removes the
*::getSymbolAddress and *::lookupSymbolAddressIn methods, which returned target
addresses (uint64_ts), and replaces them with *::findSymbol and *::findSymbolIn
respectively, which return instances of the new JITSymbol type. Unlike the old
methods, calling findSymbol or findSymbolIn does not cause the symbol to be
immediately materialized when found. Instead, the symbol will be materialized
if/when the getAddress method is called on the returned JITSymbol. This allows
us to query for the existence of symbols without actually materializing them. In
the future I expect more information to be attached to the JITSymbol class, for
example whether the returned symbol is a weak or strong definition. This will
allow us to properly handle weak symbols and multiple definitions.

llvm-svn: 228557

9 years agoInstCombine: propagate nonNull through assume
Ramkumar Ramachandra [Mon, 9 Feb 2015 01:13:13 +0000 (01:13 +0000)]
InstCombine: propagate nonNull through assume

Make assume (load (call|invoke) != null) set nonNull return attribute
for the call and invoke. Also include tests.

Differential Revision: http://reviews.llvm.org/D7107

llvm-svn: 228556

9 years ago[emacs] Get llvm-mode to font-lock "personality"
Ramkumar Ramachandra [Mon, 9 Feb 2015 00:30:03 +0000 (00:30 +0000)]
[emacs] Get llvm-mode to font-lock "personality"

Differential Revision: http://reviews.llvm.org/D7494

llvm-svn: 228555

9 years agoFix -Wuninitialized build by referencing the relevant ctor parameter instead of the...
David Blaikie [Sun, 8 Feb 2015 23:15:37 +0000 (23:15 +0000)]
Fix -Wuninitialized build by referencing the relevant ctor parameter instead of the base class member variable.

llvm-svn: 228554

9 years agoMake PDBSymbol's IPDBSymbol reference const.
Zachary Turner [Sun, 8 Feb 2015 22:53:53 +0000 (22:53 +0000)]
Make PDBSymbol's IPDBSymbol reference const.

llvm-svn: 228553

9 years agoBugfix: ScalarEvolution incorrectly assumes that the start of certain
Sanjoy Das [Sun, 8 Feb 2015 22:52:17 +0000 (22:52 +0000)]
Bugfix: ScalarEvolution incorrectly assumes that the start of certain
add recurrences don't overflow.

This change makes the optimization more restrictive.  It still assumes
that an overflowing `add nsw` is undefined behavior; and this change
will need revisiting once we have a consistent semantics for poison
values.

Differential Revision: http://reviews.llvm.org/D7331

llvm-svn: 228552

9 years ago[X86] Remove the remaining uses of memop from AVX and AVX2 instruction patterns....
Craig Topper [Sun, 8 Feb 2015 22:38:25 +0000 (22:38 +0000)]
[X86] Remove the remaining uses of memop from AVX and AVX2 instruction patterns. AVX and AVX2 can handle unaligned loads being folded so we can just use 'load'

llvm-svn: 228551

9 years agoMetadata: Use <algorithm> to simplify code. NFC.
Benjamin Kramer [Sun, 8 Feb 2015 21:56:09 +0000 (21:56 +0000)]
Metadata: Use <algorithm> to simplify code. NFC.

llvm-svn: 228550

9 years agoFix sorting. Spotted by emaste.
Justin Hibbits [Sun, 8 Feb 2015 21:34:29 +0000 (21:34 +0000)]
Fix sorting.  Spotted by emaste.

llvm-svn: 228549

9 years agoPowerPC64 host also supports 32-bit binaries, so note it.
Justin Hibbits [Sun, 8 Feb 2015 21:23:27 +0000 (21:23 +0000)]
PowerPC64 host also supports 32-bit binaries, so note it.

llvm-svn: 228548

9 years agoFix off-by-one IsGPR().
Justin Hibbits [Sun, 8 Feb 2015 21:23:23 +0000 (21:23 +0000)]
Fix off-by-one IsGPR().

f0 was being counted as a GPR, due to the check in IsGPR().  Correct it by
looking at the precise GPR range.

llvm-svn: 228547

9 years agofix test attributes; this is an SSE2 test, not a Nehalem test
Sanjay Patel [Sun, 8 Feb 2015 21:14:27 +0000 (21:14 +0000)]
fix test attributes; this is an SSE2 test, not a Nehalem test

llvm-svn: 228546

9 years agofix test attributes; this is an x86-64 test, not a Nehalem test
Sanjay Patel [Sun, 8 Feb 2015 21:10:40 +0000 (21:10 +0000)]
fix test attributes; this is an x86-64 test, not a Nehalem test

llvm-svn: 228545

9 years agofix test attributes; these are SSE2 tests, not Nehalem tests
Sanjay Patel [Sun, 8 Feb 2015 21:05:03 +0000 (21:05 +0000)]
fix test attributes; these are SSE2 tests, not Nehalem tests

llvm-svn: 228544

9 years agoKaleidoscope-Orc: Reuse the IRGen utility function in later chapters, and remove...
David Blaikie [Sun, 8 Feb 2015 21:03:30 +0000 (21:03 +0000)]
Kaleidoscope-Orc: Reuse the IRGen utility function in later chapters, and remove an unused parameter.

llvm-svn: 228543

9 years agoDebugInfoPDB: Make the symbol base case hold an IPDBSession ref.
Zachary Turner [Sun, 8 Feb 2015 20:58:09 +0000 (20:58 +0000)]
DebugInfoPDB: Make the symbol base case hold an IPDBSession ref.

Dumping a symbol often requires access to data that isn't inside
the symbol hierarchy, but which is only accessible through the
top-level session.  This patch is a pure interface change to give
symbols a reference to the session.

llvm-svn: 228542

9 years agofix test attributes; these are SSE2 tests, not Nehalem tests
Sanjay Patel [Sun, 8 Feb 2015 20:50:58 +0000 (20:50 +0000)]
fix test attributes; these are SSE2 tests, not Nehalem tests

llvm-svn: 228541