platform/upstream/llvm.git
10 years ago[cmake] When Python is disabled for LLDB, don't try to install the
Chandler Carruth [Fri, 27 Jun 2014 15:04:42 +0000 (15:04 +0000)]
[cmake] When Python is disabled for LLDB, don't try to install the
python bindings.

For example, this prevents errors on systems that disable python because
the system python isn't available. Without this, we still try to install
things and get install errors when that doesn't work.

llvm-svn: 211899

10 years ago[ARM] Fix AAPCS non-compliance caused by very large structs
Oliver Stannard [Fri, 27 Jun 2014 13:59:27 +0000 (13:59 +0000)]
[ARM] Fix AAPCS non-compliance caused by very large structs

This is a fix to the code in clang which inserts padding arguments to
ensure that the ARM backend can emit AAPCS-VFP compliant code. This code
needs to track the number of registers which have been allocated in order
to do this. When passing a very large struct (>64 bytes) by value, clang
emits IR which takes a pointer to the struct, but the backend converts this
back to passing the struct in registers and on the stack. The bug was that
this was being considered by clang to only use one register, meaning that
there were situations in which padding arguments were incorrectly emitted
by clang.

llvm-svn: 211898

10 years ago[PowerPC] Constrain base register in PPCRegisterInfo::resolveFrameIndex
Ulrich Weigand [Fri, 27 Jun 2014 13:04:12 +0000 (13:04 +0000)]
[PowerPC] Constrain base register in PPCRegisterInfo::resolveFrameIndex

I've run into a bug where current LLVM at -O0 (with fast-isel)
generated invalid code like:

        ld 0, 20936(1)                  # 8-byte Folded Reload
        stw 12, 10348(0)
        stw 12, 10344(0)

The underlying vreg had been introduced as base register by the
Local Stack Slot Allocation pass.  That register was constrained
to G8RC by PPCRegisterInfo::materializeFrameBaseRegister to match
the ADDI instruction used to set it, but it was *not* constrained
to G8RC_NOX0 to fit the *use* of the register in an address.

That should have happened in PPCRegisterInfo::resolveFrameIndex.
This patch adds an appropriate constrainRegClass call.

Reviewed by Hal Finkel.

llvm-svn: 211897

10 years ago[msan] Add store_context_size= flag.
Evgeniy Stepanov [Fri, 27 Jun 2014 12:48:01 +0000 (12:48 +0000)]
[msan] Add store_context_size= flag.

A new flag to control stack trace size for store event (in
track-origins=2 mode) independently of malloc_context_size.

llvm-svn: 211896

10 years agoReplace GetProgramPath("ld") with GetLinkerPath().
Logan Chien [Fri, 27 Jun 2014 12:37:36 +0000 (12:37 +0000)]
Replace GetProgramPath("ld") with GetLinkerPath().

llvm-svn: 211895

10 years ago[x86] Clean up some unused variables, especially in release builds.
Chandler Carruth [Fri, 27 Jun 2014 12:04:18 +0000 (12:04 +0000)]
[x86] Clean up some unused variables, especially in release builds.

llvm-svn: 211894

10 years ago[ARM-BE] Generate correct NEON intrinsics for big endian systems.
James Molloy [Fri, 27 Jun 2014 11:53:35 +0000 (11:53 +0000)]
[ARM-BE] Generate correct NEON intrinsics for big endian systems.

The NEON intrinsics in arm_neon.h are designed to work on vectors
"as-if" loaded by (V)LDR. We load vectors "as-if" (V)LD1, so the
intrinsics are currently incorrect.

This patch adds big-endian versions of the intrinsics that does the
"obvious but dumb" thing of reversing all vector inputs and all
vector outputs. This will produce extra REVs, but we trust the
optimizer to remove them.

llvm-svn: 211893

10 years ago[x86] Teach the target combine step to aggressively fold pshufd insturcions.
Chandler Carruth [Fri, 27 Jun 2014 11:40:13 +0000 (11:40 +0000)]
[x86] Teach the target combine step to aggressively fold pshufd insturcions.

Summary:
This allows it to fold pshufd instructions across intervening
half-shuffles and other noise. This pattern actually shows up in the
generic lowering tests, but I've also added direct tests using
intrinsics to make sure that the specific desired functionality is
working even if the lowering stuff changes in the future.

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

llvm-svn: 211892

10 years ago[ELF][Mips] Fix recognition of MIPS 64-bit arch in the ELFObjectFile:getArch() method.
Simon Atanasyan [Fri, 27 Jun 2014 11:36:45 +0000 (11:36 +0000)]
[ELF][Mips] Fix recognition of MIPS 64-bit arch in the ELFObjectFile:getArch() method.

llvm-svn: 211891

10 years ago[x86] Teach the target-specific combining how to aggressively fold
Chandler Carruth [Fri, 27 Jun 2014 11:34:40 +0000 (11:34 +0000)]
[x86] Teach the target-specific combining how to aggressively fold
half-shuffles, even looking through intervening instructions in a chain.

Summary:
This doesn't happen to show up with any test cases I've found for the current
shuffle lowering, but previous attempts would benefit from this and it seems
generally useful. I've tested it directly using intrinsics, which also shows
that it will work with hand vectorized code as well.

Note that even though pshufd isn't directly used in these tests, it gets
exercised because we combine some of the half shuffles into a pshufd
first, and then merge them.

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

llvm-svn: 211890

10 years ago[x86] Teach the X86 backend to DAG-combine SSE2 shuffles that are
Chandler Carruth [Fri, 27 Jun 2014 11:27:52 +0000 (11:27 +0000)]
[x86] Teach the X86 backend to DAG-combine SSE2 shuffles that are
trivially redundant.

This fixes several cases in the new vector shuffle lowering algorithm
which would generate redundant shuffle instructions for the sake of
simplicity.

I'm also deleting a testcase which was somewhat ridiculous. It was
checking for a bug in 2007 about incorrectly transforming shuffles by
looking for the string "-86" in the output of a pretty substantial
function. This test case doesn't seem to have any value at this point.

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

llvm-svn: 211889

10 years ago[x86] Begin a significant overhaul of how vector lowering is done in the
Chandler Carruth [Fri, 27 Jun 2014 11:23:44 +0000 (11:23 +0000)]
[x86] Begin a significant overhaul of how vector lowering is done in the
x86 backend.

This sketches out a new code path for vector lowering, hidden behind an
off-by-default flag while it is under development. The fundamental idea
behind the new code path is to aggressively break down the problem space
in ways that ease selecting the odd set of instructions available on
x86, and carefully avoid scalarizing code even when forced to use older
ISAs. Notably, this starts off restricting itself to SSE2 and implements
the complete vector shuffle and blend space for 128-bit vectors in SSE2
without scalarizing. The plan is to layer on top of this ISA extensions
where we can bail out of the complex SSE2 lowering and opt for
a cheaper, specialized instruction (or set of instructions). It also
needs to be generalized to AVX and AVX512 vector widths.

Currently, this does a decent but not perfect job for SSE2. There are
some specific shortcomings that I plan to address:
- We need a peephole combine to fold together shuffles where possible.
  There are cases where a previous shuffle could be modified slightly to
  arrange for elements to be in the correct position and a later shuffle
  eliminated. Doing this eagerly added quite a bit of complexity, and
  so my plan is to combine away these redundancies afterward.
- There are a lot more clever ways to use unpck and pack that need to be
  added. This is essential for real world shuffles as it turns out...

Once SSE2 is polished a bit I should be able to get interesting numbers
on performance improvements on benchmarks conducive to vectorization.
All of this will be off by default until it is functionally equivalent
of course.

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

llvm-svn: 211888

10 years agoDon't check clang binary name, as it can be different in some test setups.
Alexander Kornienko [Fri, 27 Jun 2014 11:18:13 +0000 (11:18 +0000)]
Don't check clang binary name, as it can be different in some test setups.

Summary: This unbreaks our internal build after these tests were turned on in r211738.

Reviewers: chandlerc

Reviewed By: chandlerc

Subscribers: benlangmuir, cfe-commits

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

llvm-svn: 211887

10 years ago[OPENMP] Parsing and sema analysis for 'copyprivate' clause.
Alexey Bataev [Fri, 27 Jun 2014 10:37:06 +0000 (10:37 +0000)]
[OPENMP] Parsing and sema analysis for 'copyprivate' clause.

llvm-svn: 211886

10 years ago[RuntimeDyld, PowerPC] Fix/improve handling of TOC relocations
Ulrich Weigand [Fri, 27 Jun 2014 10:32:14 +0000 (10:32 +0000)]
[RuntimeDyld, PowerPC] Fix/improve handling of TOC relocations

Current PPC64 RuntimeDyld code to handle TOC relocations has two
problems:

- With recent linkers, in addition to the relocations that implicitly
  refer to the TOC base (R_PPC64_TOC*), you can now also use the .TOC.
  magic symbol with any other relocation to refer to the TOC base
  explicitly.  This isn't currently used much in ELFv1 code (although
  it could be), but it is essential in ELFv2 code.

- In a complex JIT environment with multiple modules, each module may
  have its own .toc section, and TOC relocations in one module must
  refer to *its own* TOC section.  The current findPPC64TOC implementation
  does not correctly implement this; in fact, it will always return the
  address of the first TOC section it finds anywhere.  (Note that at the
  time findPPC64TOC is called, we don't even *know* which module the
  relocation originally resided in, so it is not even possible to fix
  this routine as-is.)

This commit fixes both problems by handling TOC relocations earlier, in
processRelocationRef.  To do this, I've removed the findPPC64TOC routine
and replaced it by a new routine findPPC64TOCSection, which works
analogously to findOPDEntrySection in scanning the sections of the
ObjImage provided by its caller, processRelocationRef.  This solves the
issue of finding the correct TOC section associated with the current
module.

This makes it straightforward to implement both R_PPC64_TOC relocations,
and relocations explicitly refering to the .TOC. symbol, directly in
processRelocationRef.  There is now a new problem in implementing the
R_PPC64_TOC16* relocations, because those can now in theory involve
*three* different sections: the relocation may be applied in section A,
refer explicitly to a symbol in section B, and refer implicitly to the
TOC section C.  The final processing of the relocation thus may only
happen after all three of these sections have been assigned final
addresses.  There is currently no obvious means to implement this in
its general form with the common-code RuntimeDyld infrastructure.

Fortunately, ppc64 code usually makes no use of this most general form;
in fact, TOC16 relocations are only ever generated by LLVM for symbols
residing themselves in the TOC, which means "section B" == "section C"
in the above terminology.  This special case can easily be handled with
the current infrastructure, and that is what this patch does.
[ Unhandled cases result in an explicit error, unlike the current code
which silently returns the wrong TOC base address ... ]

This patch makes the JIT work on both BE and LE (ELFv2 requires
additional patches, of course), and allowed me to successfully run
complex JIT scenarios (via mesa/llvmpipe).

Reviewed by Hal Finkel.

llvm-svn: 211885

10 years agoconst_cast the memory MemoryBuffer following LLVM r211883
Alp Toker [Fri, 27 Jun 2014 09:24:27 +0000 (09:24 +0000)]
const_cast the memory MemoryBuffer following LLVM r211883

llvm-svn: 211884

10 years agoIRReader: don't mark MemoryBuffers const
Alp Toker [Fri, 27 Jun 2014 09:19:14 +0000 (09:19 +0000)]
IRReader: don't mark MemoryBuffers const

llvm-svn: 211883

10 years ago[tsan] Disable a failing test.
Evgeniy Stepanov [Fri, 27 Jun 2014 08:10:27 +0000 (08:10 +0000)]
[tsan] Disable a failing test.

java_finalizer is failing on all sanitizer bots since it was added in r211829.

llvm-svn: 211882

10 years agoAdded instruction combine to transform few more negative values addition to subtracti...
Dinesh Dwivedi [Fri, 27 Jun 2014 07:47:35 +0000 (07:47 +0000)]
Added instruction combine to transform few more negative values addition to subtraction (Part 3)
This patch enables transforms for

(x + (~(y | c) + 1) --> x - (y | c) if c is odd

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

llvm-svn: 211881

10 years agoRemove the caching of the target machine from SystemZTargetLowering.
Eric Christopher [Fri, 27 Jun 2014 07:38:01 +0000 (07:38 +0000)]
Remove the caching of the target machine from SystemZTargetLowering.
Update all callers and uses accordingly.

llvm-svn: 211880

10 years agoGlobalOpt: Fix constantfold-initializers.ll test
David Majnemer [Fri, 27 Jun 2014 07:36:26 +0000 (07:36 +0000)]
GlobalOpt: Fix constantfold-initializers.ll test

The test added in r211762 was sloppy, the correct initializer wasn't
added to @llvm.global_ctors

Spotted by Pasi Parviainen!

llvm-svn: 211879

10 years ago[msan] Fix truncated stack trace in chained origin reports.
Evgeniy Stepanov [Fri, 27 Jun 2014 07:32:08 +0000 (07:32 +0000)]
[msan] Fix truncated stack trace in chained origin reports.

This is a leftover from the times when the next (chained) origin id
was stored as the last frame of a stack trace.

llvm-svn: 211878

10 years agoRemove target machine caching from SystemZInstrInfo and
Eric Christopher [Fri, 27 Jun 2014 07:01:17 +0000 (07:01 +0000)]
Remove target machine caching from SystemZInstrInfo and
SystemZRegisterInfo and replace it with the subtarget as that's
all they needed in the first place. Update all uses and calls
accordingly.

llvm-svn: 211877

10 years agoDriver: Pass -ivfsoverlay to module crashdumps
Justin Bogner [Fri, 27 Jun 2014 06:35:05 +0000 (06:35 +0000)]
Driver: Pass -ivfsoverlay to module crashdumps

When we create a crashdump involving modules, we build a VFS to
reproduce the problem with. This updates the reproduction script to
use that VFS.

llvm-svn: 211876

10 years agoDon't expand to invalid Scops with -polly-detect-keep-going
Andreas Simbuerger [Fri, 27 Jun 2014 06:21:14 +0000 (06:21 +0000)]
Don't expand to invalid Scops with -polly-detect-keep-going

Enabling -keep-going in ScopDetection causes expansion to an invalid
Scop candidate.

Region A     <- Valid candidate
   |
Region B     <- Invalid candidate

If -keep-going is enabled, ScopDetection would expand A to A+B because
the RejectLog is never checked for errors during expansion.

With this patch only A becomes a valid Scop.

llvm-svn: 211875

10 years agoAdd a FIXME for an unfortunate issue in ConvertBackendLocation()
Alp Toker [Fri, 27 Jun 2014 06:02:00 +0000 (06:02 +0000)]
Add a FIXME for an unfortunate issue in ConvertBackendLocation()

This function is copying the entire file contents into memory repeatedly and
allocating new file IDs *each time* a source location is processed.

llvm-svn: 211874

10 years agoRevert "Revert "Revert "PR20038: DebugInfo: Inlined call sites where the caller has...
David Blaikie [Fri, 27 Jun 2014 05:34:05 +0000 (05:34 +0000)]
Revert "Revert "Revert "PR20038: DebugInfo: Inlined call sites where the caller has debug info but the call itself has no debug location."""

Reverting this again, didn't mean to commit it - while r211872 fixes one
of the issues here, there are still others to figure out and address.

This reverts commit r211871.

llvm-svn: 211873

10 years agoArgumentPromotion: Propagate debug locations on calls for which arguments are promoted.
David Blaikie [Fri, 27 Jun 2014 05:32:09 +0000 (05:32 +0000)]
ArgumentPromotion: Propagate debug locations on calls for which arguments are promoted.

llvm-svn: 211872

10 years agoRevert "Revert "PR20038: DebugInfo: Inlined call sites where the caller has debug...
David Blaikie [Fri, 27 Jun 2014 05:31:49 +0000 (05:31 +0000)]
Revert "Revert "PR20038: DebugInfo: Inlined call sites where the caller has debug info but the call itself has no debug location.""

This reverts commit r211724.

llvm-svn: 211871

10 years agoHave SystemZSelectionDAGInfo constructor take a DataLayout rather
Eric Christopher [Fri, 27 Jun 2014 05:26:28 +0000 (05:26 +0000)]
Have SystemZSelectionDAGInfo constructor take a DataLayout rather
than a target machine since it doesn't need anything past the
DataLayout.

llvm-svn: 211870

10 years agoRename getX86ConditonCode -> getX86ConditionCode
Craig Topper [Fri, 27 Jun 2014 05:18:21 +0000 (05:18 +0000)]
Rename getX86ConditonCode -> getX86ConditionCode

llvm-svn: 211869

10 years agolldb: remove adhoc implementation of array_sizeof
Saleem Abdulrasool [Fri, 27 Jun 2014 05:17:41 +0000 (05:17 +0000)]
lldb: remove adhoc implementation of array_sizeof

Replace adhoc inline implementation of llvm::array_lengthof in favour of the
implementation in LLVM.  This is simply a cleanup change, no functional change
intended.

llvm-svn: 211868

10 years agoLeft out the NDEBUG in the previous checkin.
Andrew Trick [Fri, 27 Jun 2014 05:09:36 +0000 (05:09 +0000)]
Left out the NDEBUG in the previous checkin.

llvm-svn: 211867

10 years agoDriver: use GNU::Link for the Generic_GCC toolchain
Saleem Abdulrasool [Fri, 27 Jun 2014 05:06:41 +0000 (05:06 +0000)]
Driver: use GNU::Link for the Generic_GCC toolchain

This changes the behaviour of the driver for linking to match that of the
Generic_GCC::Assemble.    The default link should use "ld" rather than "gcc" for
the linker as gcc does.  This avoids the unnecessary round-tripping through gcc.
It also is much more reasonable behaviour from the user's perspective.  This
should have been updated with SVN r195554 which changed the behaviour of
Generic_GCC::Assemble.

The gcc_forward test needs to be updated to mark the fact that -march is a flag
for GCC not ld.  This was updated as a typo fix, but added a check for a flag
that is not a link flag.

The bindings test covers the change for testing, and thus no new test was added.

llvm-svn: 211866

10 years agoMachineScheduler: add some book-keeping to fix an assert.
Andrew Trick [Fri, 27 Jun 2014 04:57:05 +0000 (04:57 +0000)]
MachineScheduler: add some book-keeping to fix an assert.

Fixe for Bug 20057 - Assertion failied in llvm::SUnit* llvm::SchedBoundary::pickOnlyChoice(): Assertion `i <= (HazardRec->getMaxLookAhead() + MaxObservedStall) && "permanent hazard"'

Thanks to Chad for the test case.

llvm-svn: 211865

10 years agoPropagate const-correctness into parseBitcodeFile()
Alp Toker [Fri, 27 Jun 2014 04:48:32 +0000 (04:48 +0000)]
Propagate const-correctness into parseBitcodeFile()

llvm-svn: 211864

10 years agoHave MipsSelectionDAGInfo constructor take a DataLayout rather
Eric Christopher [Fri, 27 Jun 2014 04:38:30 +0000 (04:38 +0000)]
Have MipsSelectionDAGInfo constructor take a DataLayout rather
than a target machine since it doesn't need anything past the
DataLayout.

llvm-svn: 211863

10 years agoCodeGenAction: don't duplicate entire .ll/.bc files into memory
Alp Toker [Fri, 27 Jun 2014 04:34:44 +0000 (04:34 +0000)]
CodeGenAction: don't duplicate entire .ll/.bc files into memory

Requires supporting changes from LLVM r211861.

llvm-svn: 211862

10 years agoParseIR: don't take ownership of the MemoryBuffer
Alp Toker [Fri, 27 Jun 2014 04:33:58 +0000 (04:33 +0000)]
ParseIR: don't take ownership of the MemoryBuffer

clang was needlessly duplicating whole memory buffer contents in an attempt to
satisfy unclear ownership semantics. Let's just hide internal LLVM quirks and
present a simple non-owning interface.

The public C API preserves previous behaviour for stability.

llvm-svn: 211861

10 years agoMove NVPTX subtarget dependent variables from the target machine
Eric Christopher [Fri, 27 Jun 2014 04:33:14 +0000 (04:33 +0000)]
Move NVPTX subtarget dependent variables from the target machine
to the subtarget.

llvm-svn: 211860

10 years agoR600: Add some testcases for promote alloca pass.
Matt Arsenault [Fri, 27 Jun 2014 03:55:55 +0000 (03:55 +0000)]
R600: Add some testcases for promote alloca pass.

More complicated GEPs are skipped. Add some tests to
actually stress this skipping.

llvm-svn: 211859

10 years agoUse the target lowering we can get off of the DAG rather than off
Eric Christopher [Fri, 27 Jun 2014 03:45:49 +0000 (03:45 +0000)]
Use the target lowering we can get off of the DAG rather than off
of the cached target machine.

llvm-svn: 211858

10 years ago[OPENMP] Added several test cases in nesting of OpenMP regions test after review...
Alexey Bataev [Fri, 27 Jun 2014 03:33:10 +0000 (03:33 +0000)]
[OPENMP] Added several test cases in nesting of OpenMP regions test after review from Samuel F Antao.

llvm-svn: 211857

10 years agoAccount for differences in grep implementations
Alp Toker [Fri, 27 Jun 2014 03:11:38 +0000 (03:11 +0000)]
Account for differences in grep implementations

llvm-svn: 211856

10 years agoSupport: update DLLCharacteristics enumeration
Saleem Abdulrasool [Fri, 27 Jun 2014 03:11:18 +0000 (03:11 +0000)]
Support: update DLLCharacteristics enumeration

Add the new AppContainer characteristic which is import for Windows Store
(Metro) compatible applications.  Add the new Control Flow Guard flag to bring
the enumeration up to date with the current values as of Windows 8.1.

llvm-svn: 211855

10 years agoSupport: tweak comment layout
Saleem Abdulrasool [Fri, 27 Jun 2014 03:11:14 +0000 (03:11 +0000)]
Support: tweak comment layout

Make the comment layout more uniform.  NFC.

llvm-svn: 211854

10 years agoRestore test from r211844 skipping '.file' directives
Alp Toker [Fri, 27 Jun 2014 02:59:39 +0000 (02:59 +0000)]
Restore test from r211844 skipping '.file' directives

At least this answers the question of whether .bc/.ll input processed by the
frontend produces identical output to the original compilation.

llvm-svn: 211853

10 years agoDon't force the build of toos/lto as a static lib.
Rafael Espindola [Fri, 27 Jun 2014 02:51:21 +0000 (02:51 +0000)]
Don't force the build of toos/lto as a static lib.

Any uses of tools/lto as a static lib should probably move to lib/LTO.
This was also never implemented in the configure build, so this reduces
the differences among the two.

llvm-svn: 211852

10 years agoFix a few typos.
Bruce Mitchener [Fri, 27 Jun 2014 02:42:12 +0000 (02:42 +0000)]
Fix a few typos.

llvm-svn: 211851

10 years agoFix missing newline and simplify debug printing.
Matt Arsenault [Fri, 27 Jun 2014 02:36:59 +0000 (02:36 +0000)]
Fix missing newline and simplify debug printing.

llvm-svn: 211850

10 years agoPartially disable test from r211844
Alp Toker [Fri, 27 Jun 2014 02:35:57 +0000 (02:35 +0000)]
Partially disable test from r211844

ELF assembly contains .line directives that differ based on the input filename.
Weaken the test while considering options.

llvm-svn: 211849

10 years agoR600: Move load/store ReplaceNodeResults to common code.
Matt Arsenault [Fri, 27 Jun 2014 02:33:47 +0000 (02:33 +0000)]
R600: Move load/store ReplaceNodeResults to common code.

Future patches will want to custom lower loads on SI.

llvm-svn: 211848

10 years agoMove the constructor for NVPTXFrameLowering into the implementation
Eric Christopher [Fri, 27 Jun 2014 02:05:24 +0000 (02:05 +0000)]
Move the constructor for NVPTXFrameLowering into the implementation
file in preparation for the subtarget move.

llvm-svn: 211847

10 years agoRemove unnecessary caching of the TargetMachine on NVPTXFrameLowering.
Eric Christopher [Fri, 27 Jun 2014 02:05:22 +0000 (02:05 +0000)]
Remove unnecessary caching of the TargetMachine on NVPTXFrameLowering.
Adjust the constructor accordingly.

llvm-svn: 211846

10 years agoRework the logic for setting the TargetName. This appears to
Eric Christopher [Fri, 27 Jun 2014 02:05:19 +0000 (02:05 +0000)]
Rework the logic for setting the TargetName. This appears to
be shorter and identical in goal.

llvm-svn: 211845

10 years agoAdd test coverage for .bc input in the frontend
Alp Toker [Fri, 27 Jun 2014 02:04:28 +0000 (02:04 +0000)]
Add test coverage for .bc input in the frontend

Test that we can consume LLVM bitcode and additionally check that it produces
the same output as a direct compilation.

The feature is crashy and has gone untested until now, but we might as well
provide some coverage as long as it remains in tree.

Also test LL source input in the same way because the existing tests for that
don't look convincing.

llvm-svn: 211844

10 years agoRemove .bc from test config.suffixes
Alp Toker [Fri, 27 Jun 2014 02:04:21 +0000 (02:04 +0000)]
Remove .bc from test config.suffixes

This was unused. Besides, a binary file can't really contain lit ShTests.

llvm-svn: 211843

10 years agoTest commit: wether -> whether.
Bruce Mitchener [Fri, 27 Jun 2014 01:58:47 +0000 (01:58 +0000)]
Test commit: wether -> whether.

llvm-svn: 211842

10 years agoclang/test/Driver/fuse-ld.c: Really fix to match dos path.
NAKAMURA Takumi [Fri, 27 Jun 2014 01:32:59 +0000 (01:32 +0000)]
clang/test/Driver/fuse-ld.c: Really fix to match dos path.

llvm-svn: 211841

10 years agoRemove caching of the target machine in NVPTXInstrInfo and
Eric Christopher [Fri, 27 Jun 2014 01:27:08 +0000 (01:27 +0000)]
Remove caching of the target machine in NVPTXInstrInfo and
update constructor accordingly.

llvm-svn: 211840

10 years agoRemove comment that duplicated information in the constructor
Eric Christopher [Fri, 27 Jun 2014 01:27:06 +0000 (01:27 +0000)]
Remove comment that duplicated information in the constructor
that it's after.

llvm-svn: 211839

10 years agoRemove commented out code.
Eric Christopher [Fri, 27 Jun 2014 01:27:05 +0000 (01:27 +0000)]
Remove commented out code.

llvm-svn: 211838

10 years agoRemove extraneous parens and extraneous const cast (and fix the
Eric Christopher [Fri, 27 Jun 2014 01:27:03 +0000 (01:27 +0000)]
Remove extraneous parens and extraneous const cast (and fix the
prototype for the function to patch what we were returning).

llvm-svn: 211837

10 years agoMove the subtarget dependent features from the target machine to
Eric Christopher [Fri, 27 Jun 2014 01:14:54 +0000 (01:14 +0000)]
Move the subtarget dependent features from the target machine to
the subtarget for the MSP430 target.

llvm-svn: 211836

10 years agoRemove uses and caches of the target machine and subtarget from
Eric Christopher [Fri, 27 Jun 2014 01:14:50 +0000 (01:14 +0000)]
Remove uses and caches of the target machine and subtarget from
both MSP430InstrInfo and MSP430RegisterInfo. Remove unused member
variable StackAlign from MSP430RegisterInfo. Update constructors
accordingly.

llvm-svn: 211835

10 years agoMake clang-tidy-diff.py py3-compatible.
NAKAMURA Takumi [Fri, 27 Jun 2014 01:10:18 +0000 (01:10 +0000)]
Make clang-tidy-diff.py py3-compatible.

llvm-svn: 211834

10 years agoAdd const to sort() comparator function. Caught by gcc but not clang
Nick Kledzik [Fri, 27 Jun 2014 01:04:01 +0000 (01:04 +0000)]
Add const to sort() comparator function.  Caught by gcc but not clang

llvm-svn: 211833

10 years agoDo not inline methods of C++ containers (coming from headers).
Anna Zaks [Fri, 27 Jun 2014 01:03:05 +0000 (01:03 +0000)]
Do not inline methods of C++ containers (coming from headers).

This silences false positives (leaks, use of uninitialized value) in simple
code that uses containers such as std::vector and std::list. The analyzer
cannot reason about the internal invariances of those data structures which
leads to false positives. Until we come up with a better solution to that
problem, let's just not inline the methods of the containers and allow objects
to escape whenever such methods are called.

This just extends an already existing flag "c++-container-inlining" and applies
the heuristic not only to constructors and destructors of the containers, but
to all of their methods.

We have a bunch of distinct user reports all related to this issue
(radar://16058651, radar://16580751, radar://16384286, radar://16795491
[PR19637]).

llvm-svn: 211832

10 years agoSuppress clang-tools-extra/test/clang-tidy/clang-tidy-diff.cpp on win32 due to dos...
NAKAMURA Takumi [Fri, 27 Jun 2014 00:55:16 +0000 (00:55 +0000)]
Suppress clang-tools-extra/test/clang-tidy/clang-tidy-diff.cpp on win32 due to dos path issue.

I'll fix it later.

llvm-svn: 211831

10 years agoRemove caching of an unused subtarget from MSP430FrameLowering.
Eric Christopher [Fri, 27 Jun 2014 00:52:11 +0000 (00:52 +0000)]
Remove caching of an unused subtarget from MSP430FrameLowering.

llvm-svn: 211830

10 years agotsan: add __tsan_java_finalize interface function
Dmitry Vyukov [Fri, 27 Jun 2014 00:47:38 +0000 (00:47 +0000)]
tsan: add __tsan_java_finalize interface function
It is required to prevent false positives between object ctor and finalizer,
as otherwise they look completely unsynchronized.

llvm-svn: 211829

10 years ago[X86] AVX512: Add vbroadcasti*
Adam Nemet [Fri, 27 Jun 2014 00:43:38 +0000 (00:43 +0000)]
[X86] AVX512: Add vbroadcasti*

For now I used a separate template for these sub-vector/tuple broadcasts
rather than sharing the mem variants with avx512_int_broadcast_rm.

<rdar://problem/17402869>

llvm-svn: 211828

10 years agoRemove unnecessary caching of variables by MSP430TargetLowering and
Eric Christopher [Fri, 27 Jun 2014 00:37:59 +0000 (00:37 +0000)]
Remove unnecessary caching of variables by MSP430TargetLowering and
make the constructor more general since it only needs a target
machine.

llvm-svn: 211827

10 years agoHave MSP430SelectionDAGInfo constructor take a DataLayout rather
Eric Christopher [Fri, 27 Jun 2014 00:37:57 +0000 (00:37 +0000)]
Have MSP430SelectionDAGInfo constructor take a DataLayout rather
than a target machine since it doesn't need anything past the
DataLayout.

llvm-svn: 211826

10 years agoAdd utility to SimpleDefinedAtom to sort references
Nick Kledzik [Fri, 27 Jun 2014 00:30:31 +0000 (00:30 +0000)]
Add utility to SimpleDefinedAtom to sort references

llvm-svn: 211825

10 years agoMove all of the hexagon subtarget dependent variables from the target
Eric Christopher [Fri, 27 Jun 2014 00:27:40 +0000 (00:27 +0000)]
Move all of the hexagon subtarget dependent variables from the target
machine to the subtarget.

llvm-svn: 211824

10 years agoAllow different path separator for windows build.
Logan Chien [Fri, 27 Jun 2014 00:19:33 +0000 (00:19 +0000)]
Allow different path separator for windows build.

llvm-svn: 211823

10 years agoHave HexagonSelectionDAGInfo take a DataLayout rather than a
Eric Christopher [Fri, 27 Jun 2014 00:18:25 +0000 (00:18 +0000)]
Have HexagonSelectionDAGInfo take a DataLayout rather than a
target machine since that's all it needs.

llvm-svn: 211822

10 years agoMake HexagonISelLowering not dependent upon a HexagonTargetMachine,
Eric Christopher [Fri, 27 Jun 2014 00:13:52 +0000 (00:13 +0000)]
Make HexagonISelLowering not dependent upon a HexagonTargetMachine,
but a normal TargetMachine and remove a few cached uses.

llvm-svn: 211821

10 years agoReduce indentation.
Eric Christopher [Fri, 27 Jun 2014 00:13:49 +0000 (00:13 +0000)]
Reduce indentation.

llvm-svn: 211820

10 years agoRemove unnecessary caching of the subtarget for HexagonFrameLowering and remove the...
Eric Christopher [Fri, 27 Jun 2014 00:13:47 +0000 (00:13 +0000)]
Remove unnecessary caching of the subtarget for HexagonFrameLowering and remove the unused constructor argument.

llvm-svn: 211819

10 years agoInstrItineraryData is already on the subtarget, no reason to
Eric Christopher [Fri, 27 Jun 2014 00:13:43 +0000 (00:13 +0000)]
InstrItineraryData is already on the subtarget, no reason to
cache it on the target as well.

llvm-svn: 211818

10 years ago[StackMaps] Enable patchpoint liveness analysis per default.
Juergen Ributzka [Thu, 26 Jun 2014 23:39:52 +0000 (23:39 +0000)]
[StackMaps] Enable patchpoint liveness analysis per default.

llvm-svn: 211817

10 years ago[Stackmaps] Remove the liveness calculation for stackmap intrinsics.
Juergen Ributzka [Thu, 26 Jun 2014 23:39:44 +0000 (23:39 +0000)]
[Stackmaps] Remove the liveness calculation for stackmap intrinsics.

There is no need to calculate the liveness information for stackmaps. The
liveness information is still available for the patchpoint intrinsic and
that is also the intended usage model.

Related to <rdar://problem/17473725>

llvm-svn: 211816

10 years ago[RuntimeDyld] Teach MachOObjectImage to deregister itself with the debugger upon
Lang Hames [Thu, 26 Jun 2014 23:05:44 +0000 (23:05 +0000)]
[RuntimeDyld] Teach MachOObjectImage to deregister itself with the debugger upon
destruction the same way ELFObjectImage does.

llvm-svn: 211815

10 years agoRevert "Introduce a string_ostream string builder facilty"
Alp Toker [Thu, 26 Jun 2014 22:52:05 +0000 (22:52 +0000)]
Revert "Introduce a string_ostream string builder facilty"

Temporarily back out commits r211749, r211752 and r211754.

llvm-svn: 211814

10 years agoAvoid extra back reference key lookup in msmangler
Reid Kleckner [Thu, 26 Jun 2014 22:42:18 +0000 (22:42 +0000)]
Avoid extra back reference key lookup in msmangler

Avoid a second key lookup when the back reference key is going to be
inserted in the StringMap. The string lookups in the msmangler are the
main responsible for the huge overhead when compared to the itanium
mangler. This patch makes a small but noticeable improvement.

Reviewed by: rnk

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

Patch by Agustín Bergé!

llvm-svn: 211813

10 years agoFix an incomplete null structure spec in Python readline suppression module.
Todd Fiala [Thu, 26 Jun 2014 22:35:36 +0000 (22:35 +0000)]
Fix an incomplete null structure spec in Python readline suppression module.

Now that I'm building Linux with clang, I'm seeing more clang warnings.
This fills in some extra fields missing in the final end-of-structure-array
marker.

llvm-svn: 211812

10 years agoMove the various Subtarget dependent members down to the subtarget
Eric Christopher [Thu, 26 Jun 2014 22:33:55 +0000 (22:33 +0000)]
Move the various Subtarget dependent members down to the subtarget
for the Sparc port. Use the same initializeSubtargetDependencies
function to handle initialization similar to the other ports to
handle dependencies.

llvm-svn: 211811

10 years agoHave SparcSelectionDAGInfo take a DataLayout to initialize since
Eric Christopher [Thu, 26 Jun 2014 22:33:52 +0000 (22:33 +0000)]
Have SparcSelectionDAGInfo take a DataLayout to initialize since
that's all it needs.

llvm-svn: 211810

10 years agoRemove the storage and use of the subtarget out of the sparc frame
Eric Christopher [Thu, 26 Jun 2014 22:33:50 +0000 (22:33 +0000)]
Remove the storage and use of the subtarget out of the sparc frame
lowering code.

llvm-svn: 211809

10 years agofixed typo
Sanjay Patel [Thu, 26 Jun 2014 22:18:51 +0000 (22:18 +0000)]
fixed typo

llvm-svn: 211808

10 years agoObjective-C ARC. Provide diagnostic and fix-it
Fariborz Jahanian [Thu, 26 Jun 2014 21:22:16 +0000 (21:22 +0000)]
Objective-C ARC. Provide diagnostic and fix-it
when casting a retainable object to a objc_bridge_related
CF type with the suggestion of applying the method
specified in the bridging attribute to the object.
// rdar://15932435

llvm-svn: 211807

10 years agoDriver: Fix a misleading comment and test for what it actually did
Justin Bogner [Thu, 26 Jun 2014 20:59:39 +0000 (20:59 +0000)]
Driver: Fix a misleading comment and test for what it actually did

llvm-svn: 211806

10 years agoDriver: Remove trailing whitespace
Justin Bogner [Thu, 26 Jun 2014 20:59:36 +0000 (20:59 +0000)]
Driver: Remove trailing whitespace

llvm-svn: 211805

10 years agoFix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.
Tom Roeder [Thu, 26 Jun 2014 20:43:27 +0000 (20:43 +0000)]
Fix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.

This fixes a regression that made clang -flto -Wl,--plugin-opt=-mattr=+aes not
pass the "+aes" option to the LTOCodeGenerator attributes.

llvm-svn: 211804

10 years ago[Refactor] Make the used dependence types explicit
Johannes Doerfert [Thu, 26 Jun 2014 20:24:17 +0000 (20:24 +0000)]
[Refactor] Make the used dependence types explicit

llvm-svn: 211803

10 years agoclang-cl: Don't store the cl compiler Tool on the stack (PR20131)
Hans Wennborg [Thu, 26 Jun 2014 19:59:02 +0000 (19:59 +0000)]
clang-cl: Don't store the cl compiler Tool on the stack (PR20131)

The Command will refer back to the Tool as its source,
so it has to outlive the Command.

Having the Tool on the stack would cause us to crash
when using "clang-cl -GR -fallback", because if the
Command fails, Driver::ExecuteCompilation tries to
peek at the Command's source.

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

llvm-svn: 211802

10 years agoGVN: Preserve invariant.load metadata
Arnold Schwaighofer [Thu, 26 Jun 2014 19:51:19 +0000 (19:51 +0000)]
GVN: Preserve invariant.load metadata

If both instructions to be replaced are marked invariant the resulting
instruction is invariant.

rdar://13358910

Fix by Erik Eckstein!

llvm-svn: 211801

10 years agoRemove extraneous includes from the target machines.
Eric Christopher [Thu, 26 Jun 2014 19:30:05 +0000 (19:30 +0000)]
Remove extraneous includes from the target machines.

llvm-svn: 211800