6 years agoFix mapping of unmaterialized global values during metadata linking
Teresa Johnson [Sun, 15 Nov 2015 14:50:14 +0000 (14:50 +0000)]
Fix mapping of unmaterialized global values during metadata linking

The patch to move metadata linking after global value linking didn't
correctly map unmaterialized global values to null as desired. They
were in fact mapped to the source copy. It largely worked by accident
since most module linker clients destroyed the source module which
caused the source GVs to be replaced by null, but caused a failure with
LTO linking on Windows:

The problem is that a null return value from materializeValueFor is
handled by mapping the value to self. This is the desired behavior when
materializeValueFor is passed a non-GlobalValue. The problem is how to
distinguish that case from the case where we really do want to map to

This patch addresses this by passing in a new flag to the value mapper
indicating that unmapped global values should be mapped to null. Other
Value types are handled as before.

Note that the documented behavior of asserting on unmapped values when
the flag RF_IgnoreMissingValues isn't set is currently disabled with
FIXME notes due to bootstrap failures. I modified these disabled asserts
so when they are eventually enabled again it won't assert for the
unmapped values when the new RF_NullMapMissingGlobalValues flag is set.

I also considered using a callback into the value materializer, but a
flag seemed cleaner given that there are already existing flags.
I also considered modifying materializeValueFor to return the input
value when we want to map to source and then treat a null return
to mean map to null. However, there are other value materializer
subclasses that implement materializeValueFor, and they would all need
to be audited and the return values possibly changed, which seemed

Reviewers: dexonsmith, joker.eph

Subscribers: pcc, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253170 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[GlobalOpt] Demote globals to locals more aggressively
James Molloy [Sun, 15 Nov 2015 14:21:37 +0000 (14:21 +0000)]
[GlobalOpt] Demote globals to locals more aggressively

Global to local demotion can speed up programs that use globals a lot. It is particularly useful with LTO, when the entire call graph is known and most functions have been internalized.

For a global to be demoted, it must only be accessed by one function and that function:
  1. Must never recurse directly or indirectly, else the GV would be clobbered.
  2. Must never rely on the value in GV at the start of the function (apart from the initializer).

GlobalOpt can already do this, but it is hamstrung and only ever tries to demote globals inside "main", because C++ gives extra guarantees about how main is called - once and only once.

In LTO mode, we can often prove the first property (if the function is internal by this point, we know enough about the callgraph to determine if it could possibly recurse). FunctionAttrs now infers the "norecurse" attribute for this reason.

The second property can be proven for a subset of functions by proving that all loads from GV are dominated by a store to GV. This is conservative in the name of compile time - this only requires a DominatorTree which is fairly cheap in the grand scheme of things. We could do more fancy stuff with MemoryDependenceAnalysis too to catch more cases but this appears to catch most of the useful ones in my testing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253168 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Docs] Fix typo
Alex Denisov [Sun, 15 Nov 2015 14:13:24 +0000 (14:13 +0000)]
[Docs] Fix typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253167 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert r253160.
Igor Breger [Sun, 15 Nov 2015 12:19:11 +0000 (12:19 +0000)]
Revert r253160.

It broke layering violation. Reproducible with BUILD_SHARED_LIBS=ON.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253163 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFixed GEP visitor in the InstCombine pass.
Elena Demikhovsky [Sun, 15 Nov 2015 08:19:35 +0000 (08:19 +0000)]
Fixed GEP visitor in the InstCombine pass.
The current implementation of GEP visitor in InstCombine fails with assertion on Vector GEP with mix of scalar and vector types, like this:

getelementptr double, double* %a, <8 x i32> %i
(It fails to create a "sext" from <8 x i32> to <8 x i64>)

I fixed it and added some tests.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253162 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAVX512: Implemented encoding and intrinsics for VMOVSHDUP/VMOVSLDUP instructions.
Igor Breger [Sun, 15 Nov 2015 07:23:13 +0000 (07:23 +0000)]
AVX512: Implemented encoding and intrinsics for VMOVSHDUP/VMOVSLDUP instructions.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253160 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoNFC: Document MSVC getters on Triple
Dylan McKay [Sun, 15 Nov 2015 05:43:11 +0000 (05:43 +0000)]
NFC: Document MSVC getters on Triple

Document the differences between the isKnownWindowsMSVC() and isWindowsMSVC() methods on Triple.

Also removed the '\brief' Doxygen annotations - now that 'AUTOBRIEF' is set to on, they are unnecessary.

Subscribers: jfb, tberghammer, danalbert, srhines, dschuff

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253159 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoUse a different block id for block of metadata kind records
Teresa Johnson [Sun, 15 Nov 2015 02:00:09 +0000 (02:00 +0000)]
Use a different block id for block of metadata kind records

There are currently two blocks with the METADATA_BLOCK id at module
scope. The first has the module-level metadata values (consisting of
some combination of METADATA_* record codes except for METADATA_KIND).
The second consists only of METADATA_KIND records. The latter is used
only in the METADATA_ATTACHMENT block within function blocks (for
metadata attached to instructions).

For ThinLTO we want to delay the parsing of module level metadata
until all functions have been imported from that module (there is some
bookkeeping used to suture it up when we read it during a post-pass).
However, we do need the METADATA_KIND records when parsing the function
body during importing, since those kinds are used as described above.

To simplify identification and parsing of just the block containing
the metadata kinds, use a different block id (METADATA_KIND_BLOCK_ID).
Support older bitcode without the new block id as well.

Reviewers: dexonsmith, joker.eph

Subscribers: davidxl, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253154 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Minor code simplification. NFC.
Dan Gohman [Sat, 14 Nov 2015 23:28:15 +0000 (23:28 +0000)]
[WebAssembly] Minor code simplification. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253150 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Make indentation consistent with the other testcases. NFC.
Dan Gohman [Sat, 14 Nov 2015 23:17:07 +0000 (23:17 +0000)]
[WebAssembly] Make indentation consistent with the other testcases. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253149 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Support signext, zeroext, and several other function attributes.
Dan Gohman [Sat, 14 Nov 2015 23:15:41 +0000 (23:15 +0000)]
[WebAssembly] Support signext, zeroext, and several other function attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253148 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Change int_wasm_memory_size from IntrNoMem to IntrReadMem.
Dan Gohman [Sat, 14 Nov 2015 23:02:31 +0000 (23:02 +0000)]
[WebAssembly] Change int_wasm_memory_size from IntrNoMem to IntrReadMem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253147 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86][SSE] Fixed arch/triple and regenerated results.
Simon Pilgrim [Sat, 14 Nov 2015 20:42:01 +0000 (20:42 +0000)]
[X86][SSE] Fixed arch/triple and regenerated results.

Tidyup before diffs from new patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253144 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-ar] Use failIfError/fail helpers.
Davide Italiano [Sat, 14 Nov 2015 19:00:33 +0000 (19:00 +0000)]
[llvm-ar] Use failIfError/fail helpers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253141 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-ar] Use fail() helper to reduce duplication.
Davide Italiano [Sat, 14 Nov 2015 18:33:47 +0000 (18:33 +0000)]
[llvm-ar] Use fail() helper to reduce duplication.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253139 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-ar] Simplify the code.
Davide Italiano [Sat, 14 Nov 2015 18:25:18 +0000 (18:25 +0000)]
[llvm-ar] Simplify the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253138 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86][SSE] Added extra vector truncation tests
Simon Pilgrim [Sat, 14 Nov 2015 15:23:59 +0000 (15:23 +0000)]
[X86][SSE] Added extra vector truncation tests

Baseline comparison to D14588

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253132 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoReduce the size of MCRelaxableFragment.
Akira Hatanaka [Sat, 14 Nov 2015 06:35:56 +0000 (06:35 +0000)]
Reduce the size of MCRelaxableFragment.

MCRelaxableFragment previously kept a copy of MCSubtargetInfo and
MCInst to enable re-encoding the MCInst later during relaxation. A copy
of MCSubtargetInfo (instead of a reference or pointer) was needed
because the feature bits could be modified by the parser.

This commit replaces the MCSubtargetInfo copy in MCRelaxableFragment
with a constant reference to MCSubtargetInfo. The copies of
MCSubtargetInfo are kept in MCContext, and the target parsers are now
responsible for asking MCContext to provide a copy whenever the feature
bits of MCSubtargetInfo have to be toggled.

With this patch, I saw a 4% reduction in peak memory usage when I
compiled verify-uselistorder.lto.bc using llc.


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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253127 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoDon't recompute LCSSA after loop-unrolling when possible.
Michael Zolotukhin [Sat, 14 Nov 2015 05:51:41 +0000 (05:51 +0000)]
Don't recompute LCSSA after loop-unrolling when possible.

Currently we always recompute LCSSA for outer loops after unrolling an
inner loop. That leads to compile time problem when we have big loop
nests, and we can solve it by avoiding unnecessary work. For instance,
if w eonly do partial unrolling, we don't break LCSSA, so we don't need
to rebuild it. Also, if all exits from the inner loop are inside the
enclosing loop, then complete unrolling won't break LCSSA either.

I replaced unconditional LCSSA recomputation with conditional recomputation +
unconditional assert and added several tests, which were failing when I
experimented with it.

Soon I plan to follow up with a similar patch for recalculation of dominators

Reviewers: hfinkel, dexonsmith, bogner, joker.eph, chandlerc

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253126 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[MCTargetAsmParser] Move the member varialbes that reference
Akira Hatanaka [Sat, 14 Nov 2015 05:20:05 +0000 (05:20 +0000)]
[MCTargetAsmParser] Move the member varialbes that reference
MCSubtargetInfo in the subclasses into MCTargetAsmParser and define a
member function getSTI.

This is done in preparation for making changes to shrink the size of
MCRelaxableFragment. (see http://reviews.llvm.org/D14346).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253124 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAdd MMX to the 3dnow enum and propagate changes around. This makes
Eric Christopher [Sat, 14 Nov 2015 03:04:00 +0000 (03:04 +0000)]
Add MMX to the 3dnow enum and propagate changes around. This makes
it somewhat more consistent with how the feature is used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253122 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ShrinkWrapping] Disable the optimization for functions with sanitize like
Quentin Colombet [Sat, 14 Nov 2015 01:55:17 +0000 (01:55 +0000)]
[ShrinkWrapping] Disable the optimization for functions with sanitize like

Even if the target supports shrink-wrapping, the prologue and epilogue
must not move because a crash can happen anywhere and sanitizers need
to be able to unwind from the PC of the crash.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253116 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRemove some unused includes
David Blaikie [Sat, 14 Nov 2015 01:32:27 +0000 (01:32 +0000)]
Remove some unused includes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253115 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[RuntimeDyld] Fix indentation and whitespace; NFC
Sanjoy Das [Sat, 14 Nov 2015 00:16:15 +0000 (00:16 +0000)]
[RuntimeDyld] Fix indentation and whitespace; NFC

Whitespace-only change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253105 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAArch64: Default AArch64Subtarget::ReserveX18 to true on darwin
Justin Bogner [Fri, 13 Nov 2015 23:05:46 +0000 (23:05 +0000)]
AArch64: Default AArch64Subtarget::ReserveX18 to true on darwin

Darwin reserves x18, so it's never ABI compliant to generate code that
uses it. Set the default value based on the OS part of the triple
rather than forcing front-ends to set the +reserve-x18 target feature
in order to build correct code for Darwin.

This will make r243310 redundant, so I'll revert that shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253102 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoMachineScheduler: Print initial pressure in debug dump
Matthias Braun [Fri, 13 Nov 2015 22:30:31 +0000 (22:30 +0000)]
MachineScheduler: Print initial pressure in debug dump

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253097 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoMachineScheduler: Improve debug output for "only one node in readyset"
Matthias Braun [Fri, 13 Nov 2015 22:30:29 +0000 (22:30 +0000)]
MachineScheduler: Improve debug output for "only one node in readyset"

When there is only 1 node left in the ready queue and it is picked call
the reason "ONLY1" instead of "NOCAND".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253096 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agotablegen: Add a simple heuristic to get better names for pressure sets
Matthias Braun [Fri, 13 Nov 2015 22:30:27 +0000 (22:30 +0000)]
tablegen: Add a simple heuristic to get better names for pressure sets

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253095 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[LIR] Add support for creating memcpys from loops with a negative stride.
Chad Rosier [Fri, 13 Nov 2015 21:51:02 +0000 (21:51 +0000)]
[LIR] Add support for creating memcpys from loops with a negative stride.

This allows us to transform the below loop into a memcpy.

void test(unsigned *__restrict__ a, unsigned *__restrict__ b) {
  for (int i = 2047; i >= 0; --i) {
    a[i] = b[i];

This is the memcpy version of r251518, which added support for memset with
negative strided loops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253091 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Fixing memory leak during relaxation by allocating MCInst in MCContext.
Colin LeMahieu [Fri, 13 Nov 2015 21:45:50 +0000 (21:45 +0000)]
[Hexagon] Fixing memory leak during relaxation by allocating MCInst in MCContext.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253090 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WinEH] Fix ESP management with 32-bit __CxxFrameHandler3
Reid Kleckner [Fri, 13 Nov 2015 21:27:00 +0000 (21:27 +0000)]
[WinEH] Fix ESP management with 32-bit __CxxFrameHandler3

The C++ EH personality automatically restores ESP from the C++ EH
registration node after a catchret. I mistakenly thought it was like
SEH, which does not restore ESP.

It makes sense for C++ EH to differ from SEH here because SEH does not
use funclets for catches, and does not allow catching inside of finally.
C++ EH may need to unwind through multiple catch funclets and eventually
catchret to some outer funclet. Therefore, the runtime has to keep track
of which ESP to use with catchret, rather than having the compiler
reload it manually.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253084 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[safestack] Rewrite isAllocaSafe using SCEV.
Evgeniy Stepanov [Fri, 13 Nov 2015 21:21:42 +0000 (21:21 +0000)]
[safestack] Rewrite isAllocaSafe using SCEV.

Use ScalarEvolution to calculate memory access bounds.
Handle function calls based on readnone/nocapture attributes.
Handle memory intrinsics with constant size.

This change improves both recall and precision of IsAllocaSafe.
See the new tests (ex. BitCastWide) for the kind of code that was wrongly
classified as safe.

SCEV efficiency seems to be limited by the fact the SafeStack runs late
(in CodeGenPrepare), and many loops are unrolled or otherwise not in LCSSA.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253083 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Docs] Fix warning "Title underline too short."
Akira Hatanaka [Fri, 13 Nov 2015 21:09:57 +0000 (21:09 +0000)]
[Docs] Fix warning "Title underline too short."

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253082 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Rename the Const instructions to be upper-case too.
Dan Gohman [Fri, 13 Nov 2015 20:27:45 +0000 (20:27 +0000)]
[WebAssembly] Rename the Const instructions to be upper-case too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253072 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoSamplePGO - Add dump routines for LineLocation, SampleRecord and FunctionSamples
Diego Novillo [Fri, 13 Nov 2015 20:24:28 +0000 (20:24 +0000)]
SamplePGO - Add dump routines for LineLocation, SampleRecord and FunctionSamples

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253071 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Rename memory intrinsics to be upper-case, following convention. NFC.
Dan Gohman [Fri, 13 Nov 2015 20:19:11 +0000 (20:19 +0000)]
[WebAssembly] Rename memory intrinsics to be upper-case, following convention. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253070 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[X86][SSE] Combine UNPCKL with vector_shuffle into UNPCKH to save one instruction...
Cong Hou [Fri, 13 Nov 2015 19:47:43 +0000 (19:47 +0000)]
[X86][SSE] Combine UNPCKL with vector_shuffle into UNPCKH to save one instruction for sext from v16i8 to v16i16 and v8i16 to v8i32.

This patch is enabling combining UNPCKL with vector_shuffle that moves the upper
half of a vector into the lower half, into a UNPCKH instruction. For example:

t2: v16i8 = vector_shuffle<8,9,10,11,12,13,14,15,u,u,u,u,u,u,u,u> t1, undef:v16i8
t3: v16i8 = X86ISD::UNPCKL undef:v16i8, t2

will be combined to:

t3: v16i8 = X86ISD::UNPCKH undef:v16i8, t1

Differential revision: http://reviews.llvm.org/D14399

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253067 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agodwarfdump: Add support for dumping the table contents of DWP indexes
David Blaikie [Fri, 13 Nov 2015 19:18:49 +0000 (19:18 +0000)]
dwarfdump: Add support for dumping the table contents of DWP indexes

This is a recommit of 252842 which was reverted in 252859. The issue was
using %s format specifier for a StringRef - used Format's
left_justify(StringRef, int) instead.

It'd be nice to have __attribute__((format(..))) on llvm::format, but
apparently it's only implemented for c-style variadics, not C++ variadic
templates. Perhaps we could fix that & conditionalize the attribute on

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253065 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAdd a comment that should have made my last commit.
Chad Rosier [Fri, 13 Nov 2015 19:13:40 +0000 (19:13 +0000)]
Add a comment that should have made my last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253063 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAdd missing triple to WinEH test case
Reid Kleckner [Fri, 13 Nov 2015 19:11:12 +0000 (19:11 +0000)]
Add missing triple to WinEH test case

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253062 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[LIR] Factor out the code to compute base ptr for negative strided loops.
Chad Rosier [Fri, 13 Nov 2015 19:11:07 +0000 (19:11 +0000)]
[LIR] Factor out the code to compute base ptr for negative strided loops.

This will allow for the code to be reused in the memcpy optimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253061 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WinEH] Make UnwindHelp a fixed stack object allocated after XMM CSRs
Reid Kleckner [Fri, 13 Nov 2015 19:06:01 +0000 (19:06 +0000)]
[WinEH] Make UnwindHelp a fixed stack object allocated after XMM CSRs

Now the offset of UnwindHelp in our EH tables and the offset that we
store to in the prologue agree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253059 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Factoring bundle creation in to a utility function.
Colin LeMahieu [Fri, 13 Nov 2015 17:42:46 +0000 (17:42 +0000)]
[Hexagon] Factoring bundle creation in to a utility function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253056 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoAMDGPU: Add stony support
Tom Stellard [Fri, 13 Nov 2015 17:06:32 +0000 (17:06 +0000)]
AMDGPU: Add stony support

Patch by: Alex Deucher

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253053 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoELFYAML: Add support for parsing AMDGPU section attribute flags
Tom Stellard [Fri, 13 Nov 2015 17:06:29 +0000 (17:06 +0000)]
ELFYAML: Add support for parsing AMDGPU section attribute flags

Reviewers: silvas

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253052 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Symbolizer] Don't use PE symbol tables to override PDB symbols
Reid Kleckner [Fri, 13 Nov 2015 17:00:36 +0000 (17:00 +0000)]
[Symbolizer] Don't use PE symbol tables to override PDB symbols

PE files are stripped by default, and only contain the names of exported

The actual reason that we bother to do this override by default is
actually due to a quirk of the way -gline-tables-only is implemented, so
I phrased the check as "if we are symbolizing from dwarf, do the symtab

This fixes lots of Windows ASan tests that I broke in r250582.

Reviewers: samsonov

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253051 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agouse range-based for loop; NFCI
Sanjay Patel [Fri, 13 Nov 2015 16:21:23 +0000 (16:21 +0000)]
use range-based for loop; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253048 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ARM] Replace ARMISD::RBIT with ISD::BITREVERSE
James Molloy [Fri, 13 Nov 2015 16:05:22 +0000 (16:05 +0000)]

ISD::BITREVERSE matches "rbit" completely, so remove ARMISD::RBIT and mark ISD::BITREVERSE as legal, adding a test for lowering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253047 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFixing a typo in docs/CodeGenerator.rst
Artyom Skrobov [Fri, 13 Nov 2015 15:14:04 +0000 (15:14 +0000)]
Fixing a typo in docs/CodeGenerator.rst

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253045 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[mips][microMIPS] Implement SHRA[_R].PH, SHRAV[_R].PH, SHRAV[_R].QB, SHRAV_R.W, SHRA_...
Zlatko Buljan [Fri, 13 Nov 2015 13:14:25 +0000 (13:14 +0000)]
[mips][microMIPS] Implement SHRA[_R].PH, SHRAV[_R].PH, SHRAV[_R].QB, SHRAV_R.W, SHRA_R.W, SHRL.PH, SHRL.QB, SHRLV.PH and SHRLV.QB instructions
Differential Revision: http://reviews.llvm.org/D14010

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253041 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[mips][ias] Explicitly disable IAS on asm-large-immediate.ll.
Daniel Sanders [Fri, 13 Nov 2015 13:02:31 +0000 (13:02 +0000)]
[mips][ias] Explicitly disable IAS on asm-large-immediate.ll.

NFC at the moment but it will prevent a failure when IAS is enabled by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253039 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[SystemZ] Simplify boolean conditional return statements
Ulrich Weigand [Fri, 13 Nov 2015 13:00:27 +0000 (13:00 +0000)]
[SystemZ] Simplify boolean conditional return statements

Use clang-tidy to simplify conditonal return statements.

Author: LegalizeAdulthood
Differential Revision: http://reviews.llvm.org/D9986

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253038 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[mips][ias] Replace invalid assembly insn in test since IAS parses inline assembly.
Daniel Sanders [Fri, 13 Nov 2015 11:44:00 +0000 (11:44 +0000)]
[mips][ias] Replace invalid assembly insn in test since IAS parses inline assembly.

This is NFC at the moment but will prevent this test from failing when
IAS is the default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253033 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Improve error message when lit fails to executable a command by
Dan Liew [Fri, 13 Nov 2015 11:38:07 +0000 (11:38 +0000)]
[lit] Improve error message when lit fails to executable a command by
showing the executable it tried to use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253032 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lit] Fix bug where ``lit.util.which()`` would return a directory
Dan Liew [Fri, 13 Nov 2015 11:37:25 +0000 (11:37 +0000)]
[lit] Fix bug where ``lit.util.which()`` would return a directory
instead of executable if the argument was found inside a directory
contained in PATH.

An example where this could cause a problem is if there was a RUN line
that ran the ``test`` command and if the user had a directory in their
PATH that contained a directory called ``test/`` (that occured before
``/usr/bin/``). Lit would try to use the directory as the executable
which would fail with the rather cryptic message.

Could not create process due to [Errno 13] Permission denied

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253031 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[GlobalOpt] Make sure all debug lines end with '\n'
James Molloy [Fri, 13 Nov 2015 11:05:13 +0000 (11:05 +0000)]
[GlobalOpt] Make sure all debug lines end with '\n'

GlobalVariable::print() used to emit a newline. It hasn't for a while now, but these debug lines weren't updated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253030 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[GlobalOpt] Coding style - remove function names from doxygen comments
James Molloy [Fri, 13 Nov 2015 11:05:07 +0000 (11:05 +0000)]
[GlobalOpt] Coding style - remove function names from doxygen comments

Suggested by Mehdi in the review of D14148.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253029 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[AArch64] Check the expansion of BITREVERSE in regression test
James Molloy [Fri, 13 Nov 2015 10:05:31 +0000 (10:05 +0000)]
[AArch64] Check the expansion of BITREVERSE in regression test

Something I missed from Hal's review, rightly pointed out by Ben Kramer - we should make sure the expansion is properly checked as it can be easy for bugs to creep in.

I've checked the scalar i8 expansion here and the vector i8 expansion in a previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253024 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[SDAG] Fix expansion of BITREVERSE
James Molloy [Fri, 13 Nov 2015 10:02:36 +0000 (10:02 +0000)]
[SDAG] Fix expansion of BITREVERSE

Richard Trieu noted that UBSan detected an overflowing shift, and the obvious fix caused a crash.

What was happening was that the shiftee (1U) was indeed too small for the possible range of shifts it had to handle, but also we were using "VT.getSizeInBits()" to get the maximum type bitwidth, but we wanted "VT.getScalarSizeInBits()" to get the vector lane size instead of the entire vector size.

Use an APInt for the shift and VT.getScalarSizeInBits().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253023 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ImplicitNulls] Add some clarifying comments; NFC
Sanjoy Das [Fri, 13 Nov 2015 08:14:00 +0000 (08:14 +0000)]
[ImplicitNulls] Add some clarifying comments; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253020 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Fixing leak in padEndloop by allocating in MCContext.
Colin LeMahieu [Fri, 13 Nov 2015 07:58:06 +0000 (07:58 +0000)]
[Hexagon] Fixing leak in padEndloop by allocating in MCContext.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253019 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agollvm/test/tools/llvm-profdata/text-format-errors.test: Use prepared version of the...
NAKAMURA Takumi [Fri, 13 Nov 2015 06:06:58 +0000 (06:06 +0000)]
llvm/test/tools/llvm-profdata/text-format-errors.test: Use prepared version of the input file, instead of using echo.

...and s/\C9/\xC9/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253014 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[llvm-profdata] Add check for text profile formats and improve error reporting (2nd...
Nathan Slingerland [Fri, 13 Nov 2015 03:47:58 +0000 (03:47 +0000)]
[llvm-profdata] Add check for text profile formats and improve error reporting (2nd try)

This change addresses two possible instances of user error / confusion when
merging sampled profile data.

Previously any input that didn't match the raw or processed instrumented format
would automatically be interpreted as instrumented profile text format data.
No error would be reported during the merge.

If foo-sampled.profdata and bar-sampled.profdata are binary sampled profiles:

Old behavior:
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -output foobar-sampled.profdata
$ llvm-profdata show -sample foobar-sampled.profdata
error: foobar-sampled.profdata:1: Expected 'mangled_name:NUM:NUM', found  lprofi

This change adds basic checks for valid input data when assuming text input.
It also makes error messages related to file format validity more specific about
the assumbed profile data type.

New behavior:
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -o foobar-sampled.profdata
error: foo.profdata: Unrecognized instrumentation profile encoding format
Perhaps you forgot to use the -sample option?

Reviewers: bogner, davidxl, dnovillo

Subscribers: davidxl, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253009 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[libFuzzer] more trophies
Kostya Serebryany [Fri, 13 Nov 2015 02:44:16 +0000 (02:44 +0000)]
[libFuzzer] more trophies

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253006 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[lib/Linker] Convert assert(false) to llvm_unreachable().
Davide Italiano [Fri, 13 Nov 2015 02:16:51 +0000 (02:16 +0000)]
[lib/Linker] Convert assert(false) to llvm_unreachable().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253005 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[libFuzzer] make libFuzzer build even with a compiler that does not have sanitizer...
Kostya Serebryany [Fri, 13 Nov 2015 01:54:40 +0000 (01:54 +0000)]
[libFuzzer] make libFuzzer build even with a compiler that does not have sanitizer headers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253003 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] NFC. Adding a number of packet correctness tests.
Colin LeMahieu [Fri, 13 Nov 2015 01:46:06 +0000 (01:46 +0000)]
[Hexagon] NFC. Adding a number of packet correctness tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253000 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert r252990.
Akira Hatanaka [Fri, 13 Nov 2015 01:44:32 +0000 (01:44 +0000)]
Revert r252990.

Some of the buildbots are still failing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252999 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Inline asm support.
Dan Gohman [Fri, 13 Nov 2015 01:42:29 +0000 (01:42 +0000)]
[WebAssembly] Inline asm support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252997 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoLLVM_ENABLE_MODULES: No need to set -fcxx-modules in trunk, just -fmodules.
NAKAMURA Takumi [Fri, 13 Nov 2015 01:26:31 +0000 (01:26 +0000)]
LLVM_ENABLE_MODULES: No need to set -fcxx-modules in trunk, just -fmodules.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252996 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoProvide a way to specify inliner's attribute compatibility and merging.
Akira Hatanaka [Fri, 13 Nov 2015 01:23:11 +0000 (01:23 +0000)]
Provide a way to specify inliner's attribute compatibility and merging.

This reapplies r252949. I've changed the type of FuncName to be
std::string instead of StringRef in emitFnAttrCompatCheck.

Original commit message for r252949:

Provide a way to specify inliner's attribute compatibility and merging
rules using table-gen. NFC.

This commit adds new classes CompatRule and MergeRule to Attributes.td,
which are used to generate code to check attribute compatibility and
merge attributes of the caller and callee.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252990 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Adding relaxation functionality to backend and test.
Colin LeMahieu [Fri, 13 Nov 2015 01:12:25 +0000 (01:12 +0000)]
[Hexagon] Adding relaxation functionality to backend and test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252989 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Un-mangle the conversion instruction names.
Dan Gohman [Fri, 13 Nov 2015 00:50:04 +0000 (00:50 +0000)]
[WebAssembly] Un-mangle the conversion instruction names.

This arranges the types in the LLVM instruction names in the same order that
they appear in the WebAssembly opcode names, and eliminates

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252988 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Rename BR_IF_ to BR_IF
Dan Gohman [Fri, 13 Nov 2015 00:46:31 +0000 (00:46 +0000)]
[WebAssembly] Rename BR_IF_ to BR_IF

With MC-based instruction printing, we no longer need instruction names to
mangle in hints about how they should be printed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252987 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Remove unneeded TODO items. NFC.
Dan Gohman [Fri, 13 Nov 2015 00:41:25 +0000 (00:41 +0000)]
[WebAssembly] Remove unneeded TODO items. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252985 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Tidy up and update a TODO item. NFC.
Dan Gohman [Fri, 13 Nov 2015 00:40:37 +0000 (00:40 +0000)]
[WebAssembly] Tidy up and update a TODO item. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252984 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WinEH] Find root frame correctly in CLR funclets
Joseph Tremoulet [Fri, 13 Nov 2015 00:39:23 +0000 (00:39 +0000)]
[WinEH] Find root frame correctly in CLR funclets

The value that the CoreCLR personality passes to a funclet for the
establisher frame may be the root function's frame or may be the parent
funclet's (mostly empty) frame in the case of nested funclets.  Each
funclet stores a pointer to the root frame in its own (mostly empty)
frame, as does the root function itself.  All frames allocate this slot at
the same offset, measured from the post-prolog stack pointer, so that the
same sequence can accept any ancestor as an establisher frame parameter
value, and so that a single offset can be reported to the GC, which also
looks at this slot.

This change allocate the slot when processing function entry, and records
its frame index on the WinEHFuncInfo object, then inserts the code to
set/copy it during prolog emission.

Reviewers: majnemer, AndyAyers, pgavlin, rnk

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252983 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[WebAssembly] Introduce a new pseudo-operand for unused expression results.
Dan Gohman [Fri, 13 Nov 2015 00:21:05 +0000 (00:21 +0000)]
[WebAssembly] Introduce a new pseudo-operand for unused expression results.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252975 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoX86-FMA3: Implemented commute transformations FMA*_Int instructions.
Vyacheslav Klochkov [Fri, 13 Nov 2015 00:07:35 +0000 (00:07 +0000)]
X86-FMA3: Implemented commute transformations FMA*_Int instructions.
It made it possible to apply the memory folding optimization for the 2nd
operand of FMA*_Int instructions.

Reviewer: Quentin Colombet
Differential Revision: http://reviews.llvm.org/D14550

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252973 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[SimplifyLibCalls] Make a function shorter. NFC.
Davide Italiano [Thu, 12 Nov 2015 23:39:00 +0000 (23:39 +0000)]
[SimplifyLibCalls] Make a function shorter. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252970 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Adding checks for values out of operand range and correct new-value produce...
Colin LeMahieu [Thu, 12 Nov 2015 23:28:01 +0000 (23:28 +0000)]
[Hexagon] Adding checks for values out of operand range and correct new-value producer usage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252969 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Adding test to make sure labels and register pairs are correctly parsed.
Colin LeMahieu [Thu, 12 Nov 2015 22:54:14 +0000 (22:54 +0000)]
[Hexagon] Adding test to make sure labels and register pairs are correctly parsed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252968 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agospecify triple and tighten checks using update_llc_test_checks.py
Sanjay Patel [Thu, 12 Nov 2015 22:27:38 +0000 (22:27 +0000)]
specify triple and tighten checks using update_llc_test_checks.py

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252962 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert "Remove unnecessary call to getAllocatableRegClass"
Tom Stellard [Thu, 12 Nov 2015 21:43:25 +0000 (21:43 +0000)]
Revert "Remove unnecessary call to getAllocatableRegClass"

This reverts commit r252565.

This also includes the revert of the commit mentioned below in order to
avoid breaking tests in AMDGPU:

Revert "AMDGPU: Set isAllocatable = 0 on VS_32/VS_64"

This reverts commit r252674.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252956 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert r252949.
Akira Hatanaka [Thu, 12 Nov 2015 21:19:18 +0000 (21:19 +0000)]
Revert r252949.

It broke some of the bots including clang-x64-ninja-win7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252951 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoProvide a way to specify inliner's attribute compatibility and merging
Akira Hatanaka [Thu, 12 Nov 2015 20:59:43 +0000 (20:59 +0000)]
Provide a way to specify inliner's attribute compatibility and merging
rules using table-gen. NFC.

This commit adds new classes CompatRule and MergeRule to Attributes.td,
which are used to generate code to check attribute compatibility and
merge attributes of the caller and callee.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252949 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert r243347 "Add TargetTransformInfo::isZExtFree."
Sanjoy Das [Thu, 12 Nov 2015 20:51:52 +0000 (20:51 +0000)]
Revert r243347 "Add TargetTransformInfo::isZExtFree."

r243347 was intended to support a change to LSR (r243348).  That change
to LSR has since had to be reverted (r243939) because it was buggy, and
now the code added in r243347 is untested and unexercised.  Given that,
I think it is appropriate to revert r243347 for now, with the intent of
adding it back in later if I get around to checking in a fixed version
of r243348.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252948 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ImplicitNulls] Fix wrapping by breaking up a condition, NFC
Sanjoy Das [Thu, 12 Nov 2015 20:51:49 +0000 (20:51 +0000)]
[ImplicitNulls] Fix wrapping by breaking up a condition, NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252947 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ImplicitNull] Extract out a HazardDetector class, NFC
Sanjoy Das [Thu, 12 Nov 2015 20:51:44 +0000 (20:51 +0000)]
[ImplicitNull] Extract out a HazardDetector class, NFC

This will make later functional changes easier to follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252946 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agodisabling sancov tests: too many failures on different platforms.
Mike Aizatsky [Thu, 12 Nov 2015 20:47:12 +0000 (20:47 +0000)]
disabling sancov tests: too many failures on different platforms.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252945 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agosancov tests - platform independent separators
Mike Aizatsky [Thu, 12 Nov 2015 20:17:49 +0000 (20:17 +0000)]
sancov tests - platform independent separators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252943 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoMy first/test commit. Removed a trailing whitespace.
Vyacheslav Klochkov [Thu, 12 Nov 2015 20:11:57 +0000 (20:11 +0000)]
My first/test commit. Removed a trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252940 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRevert "Fix bug 25440: GVN assertion after coercing loads"
Tobias Grosser [Thu, 12 Nov 2015 20:04:21 +0000 (20:04 +0000)]
Revert "Fix bug 25440: GVN assertion after coercing loads"

This reverts 252919 which broke LNT: MultiSource/Applications/SPASS

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252936 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agosancov test suite
Mike Aizatsky [Thu, 12 Nov 2015 19:34:21 +0000 (19:34 +0000)]
sancov test suite

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252933 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[ThinLTO] Update test to be more tolerant of ordering changes
Teresa Johnson [Thu, 12 Nov 2015 19:31:46 +0000 (19:31 +0000)]
[ThinLTO] Update test to be more tolerant of ordering changes

Update the ThinLTO function importing test to use DAG forms of checks so
that it is more tolerant of changes to relative ordering between
imported decls/defs. This reduces the number of changes required by the
comdat importing patch I am sending for review shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252932 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[Hexagon] Allocate MCInst in the MCContext to avoid leaking it.
Benjamin Kramer [Thu, 12 Nov 2015 19:30:40 +0000 (19:30 +0000)]
[Hexagon] Allocate MCInst in the MCContext to avoid leaking it.

Found by leaksanitizer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252931 91177308-0d34-0410-b5e6-96231b3b80d8

6 years ago[LIR] Minor refactoring. NFCI.
Chad Rosier [Thu, 12 Nov 2015 19:09:16 +0000 (19:09 +0000)]
[LIR] Minor refactoring. NFCI.

This change prevents uninteresting stores from being inserted into the list of
candidate stores for memset/memcpy conversion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252926 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoRoll an expression into an assert to fix -Wunused-variable in a -Asserts build
David Blaikie [Thu, 12 Nov 2015 19:07:43 +0000 (19:07 +0000)]
Roll an expression into an assert to fix -Wunused-variable in a -Asserts build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252925 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoreverting r252916 to investigate test failure
Nathan Slingerland [Thu, 12 Nov 2015 18:39:26 +0000 (18:39 +0000)]
reverting r252916 to investigate test failure

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252921 91177308-0d34-0410-b5e6-96231b3b80d8

6 years agoFix bug 25440: GVN assertion after coercing loads
Weiming Zhao [Thu, 12 Nov 2015 18:19:59 +0000 (18:19 +0000)]
Fix bug 25440: GVN assertion after coercing loads

when coercing loads, it inserts some instructions, which have no GV assigned.


Reviewers: hfinkel, dberlin

Subscribers: dberlin, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252919 91177308-0d34-0410-b5e6-96231b3b80d8