Commit Graph

132476 Commits

Author SHA1 Message Date
Zachary Turner
24466fcd2c Make a symbol visitor and use it to dump CV symbols.
Differential Revision: http://reviews.llvm.org/D20534
Reviewed By: rnk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270511 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 23:41:13 +00:00
Justin Bogner
bc88e8bed4 test: Be consistent with clang's sanitizer lit config
The logic that sets up lit features for sanitizers is largely copied
between here and clang, except clang's was fixed some time ago to
handle multiple sanitizers (ie, Asan + Ubsan). This just makes the
code in LLVM consistent with how it's done in clang to avoid any
gotchas by users of this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270510 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 23:02:11 +00:00
Teresa Johnson
ad092ca1c9 [ThinLTO] Refactor module loader handling into new LTO file (NFC)
Moved the ModuleLoader and supporting helper loadModuleFromBuffer out of
ThinLTOCodeGenerator and into new LTO.h/LTO.cpp files. This is in
preparation for a patch that will utilize these in the gold-plugin.

Note that there are some other pending patches (D20268 and D20290) that
also plan to refactor common interfaces and functionality into this same
pair of new files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270509 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:54:06 +00:00
Dan Gohman
7e9fa84c67 [WebAssembly] Basic TargetTransformInfo support for SIMD128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270508 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:47:07 +00:00
David Blaikie
632d568d2e llvm-dwp: Reduce indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270507 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:38:06 +00:00
David Blaikie
7bac6e8629 llvm-dwp: Split out processing of input sections to improve readability
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270503 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:21:10 +00:00
Kevin Enderby
f0a99b9f68 Tweak to change in r270491 to deal with the lld-x86_64-darwin13 bot having a old xar.h header.
Reviewed the change with Chris Bieneman and Pete Cooper.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270502 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:18:59 +00:00
Simon Pilgrim
39599bdfbf [X86][SSE] Updated (V)CVTDQ2PD(Y) and (V)CVTPS2PD(Y) fast-isel codegen to match D20528
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270501 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:17:36 +00:00
Sanjoy Das
1b294079ce [IRCE] Optimize "uses" not branches; NFCI
This changes IRCE to optimize uses, and not branches.  This change is
NFCI since the uses we do inspect are in practice only ever going to be
the condition use in conditional branches; but this flexibility will
later allow us to analyze more complex expressions than just a direct
branch on a range check.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270500 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:16:45 +00:00
Sanjay Patel
526957f4ed [InstSimplify] add vector tests for isKnownNonZero
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270498 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:09:04 +00:00
Simon Pilgrim
5d5ca2aff4 [X86][SSE] The int_x86_sse41_pmovsx* intrinsics are no longer in use (not since D13002!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270497 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 22:01:24 +00:00
David Blaikie
16017f941b llvm-dwp: Pull out compression handling helper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270496 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 21:58:58 +00:00
Andrew Kaylor
312768009e Avoid including AlwaysInliner pass in opt-bisect search.
Differential Revision: http://reviews.llvm.org/D19640



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270495 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 21:57:54 +00:00
Simon Pilgrim
6c01836442 [X86][SSE] Added cvtdq2pd/cvtps2pd generic IR tests
Added D20528 implementations as well as existing x86 intrinsics versions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270494 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 21:45:02 +00:00
Justin Bogner
b10244d092 PrologEpilogInserter: Avoid an infinite loop when MinCSFrameIndex == 0
Before r269750 we did the comparisons in this loop in signed ints so
that it DTRT when MinCSFrameIndex was 0. This was changed because it's
now possible for MinCSFrameIndex to be UINT_MAX, but that introduced a
bug when we were comparing `>= 0` - this is tautological in unsigned.

Rework the comparisons here to avoid issues with unsigned wrapping.

No test. I couldn't find a way to get any of the StackGrowsUp in-tree
targets to reach the code that sets MinCSFrameIndex.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270492 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 21:40:52 +00:00
Kevin Enderby
866cdd590d Add the printing the Mach-O (__LLVM,__bundle) xar archive file section "verbosely"
to llvm-objdump. This section is created with -fembed-bitcode option.

This requires the use of libxar and the Cmake and lit support were crafted by
Chris Bieneman!

rdar://26202242


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270491 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 21:34:12 +00:00
Simon Pilgrim
e3a492d0d0 [X86][SSE] Use shuffle/sext instead of deprecated (+ auto-upgraded) pmovsxwd intrinsic call
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270489 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 21:21:38 +00:00
Lang Hames
5d82919adc [Kaleidoscope] Add an initial "Building an ORC JIT" tutorial chapter.
This is a work in progress - the chapter text is incomplete, though
the example code compiles and runs.

Feedback and patches are, as usual, most welcome.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270487 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 20:34:19 +00:00
James Y Knight
f891cd3982 [SPARC] Fix 8 and 16-bit atomic load and store.
They were accidentally using the 32-bit load/store instruction for
8/16-bit operations, due to incorrect patterns

(8/16-bit cmpxchg and atomicrmw will be fixed in subsequent changes)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270486 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 20:33:00 +00:00
Reid Kleckner
d9b93cd3fe Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2
This effectively revers commit r270389 and re-lands r270106, but it's
almost a rewrite.

The behavior change in r270106 was that we could no longer assume that
each LF_FUNC_ID record got its own type index. This patch adds a map
from DINode* to TypeIndex, so we can stop making that assumption.

This change also emits padding bytes between type records similar to the
way MSVC does. The size of the type record includes the padding bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270485 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 20:23:46 +00:00
Wei Mi
14a29ca2bb InsertPointAnalysis: Move current live interval from being a class member
to query interfaces argument; NFC

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270481 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 19:39:19 +00:00
Xinliang David Li
0878fd7d6b tune lowering parameter for small apps (sjeng)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270480 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 19:29:26 +00:00
Gerolf Hoflehner
396a19fe67 [InstCombine] Fix assertion when bitcast is converted to gep
When an aggregate contains an opaque type its size cannot be
determined. This triggers an "Invalid GetElementPtrInst indices for type" assert
in function checkGEPType. The fix suppresses the conversion in this case.

http://reviews.llvm.org/D20319


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270479 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 19:23:17 +00:00
Michael Zolotukhin
4b3e216784 [LoopUnroll] Enable advanced unrolling analysis by default.
Summary:
This patch turns on LoopUnrollAnalyzer by default. To mitigate compile
time regressions, I chose very conservative thresholds for now. Later we
can make them more aggressive, but it might require being smarter in
which loops we're optimizing. E.g. currently the biggest issue is that
with more agressive thresholds we unroll many cold loops, which
increases compile time for no performance benefit (performance of those
loops is improved, but it doesn't matter since they are cold).

Test results for compile time(using 4 samples to reduce noise):
```
MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes 5.19%
SingleSource/Benchmarks/Polybench/medley/reg_detect/reg_detect  4.19%
MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow  3.39%
MultiSource/Applications/JM/lencod/lencod 1.47%
MultiSource/Benchmarks/Fhourstones-3_1/fhourstones3_1 -6.06%
```

I didn't see any performance changes in the testsuite, but it improves
some internal tests.

Reviewers: hfinkel, chandlerc

Subscribers: llvm-commits, mzolotukhin

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270478 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 19:10:19 +00:00
Justin Lebar
961fcb527d Fix DEBUG logs in MachineLICM.
Summary:
MBBs don't necessarily have a name (in my experience, they almost never
do), in which case this logging is quite unhelpful.  The number seems to
work well.

Reviewers: iteratee

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270477 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 18:56:07 +00:00
Zachary Turner
dc38d33d03 [codeview] Refactor symbol records to use same pattern as types.
This will pave the way to introduce a full fledged symbol visitor
similar to how we have a type visitor, thus allowing the same
dumping code to be used in llvm-readobj and llvm-pdbdump.

Differential Revision: http://reviews.llvm.org/D20384
Reviewed By: rnk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270475 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 18:49:06 +00:00
Sanjay Patel
50c861b595 fix typo; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270469 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 18:01:20 +00:00
Sanjay Patel
68e7451924 use range-loop; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270467 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 18:00:50 +00:00
David Blaikie
27665308ff llvm-dwp: More error handling around invalid compressed sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270466 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 17:59:17 +00:00
Sanjay Patel
645115fadc fix formatting; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270465 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 17:57:54 +00:00
Dan Gohman
7333a98310 [WebAssembly] Speed up LiveIntervals updating.
Use the more specific LiveInterval::removeSegment instead of
LiveInterval::shrinkToUses when we know the specific range that's
being removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270463 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 17:42:57 +00:00
David Blaikie
fb4915b806 llvm-dwp: Ensure compressed sections are preserved long enough for use in the string pool
Now that the string pool is referential rather than maintaining its own
copy of string data, compressed sections (well, technically only the
debug_str section*) need to be preserved for the lifetime of the pool to
match.

* I'm not currently optimizing for memory footprint with compressed
  input - the major memory limit I'm hitting is on dwp+dwp merge steps
  and we aren't currently compressing contents in dwp files, just in the
  .dwo inputs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270462 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 17:35:51 +00:00
Krzysztof Parzyszek
2123d3f905 [Hexagon] Move some debug-only variable declarations into DEBUG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270459 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 17:31:30 +00:00
Justin Bogner
30680ad2f1 SDAG: Remove the transitional default Select() implementation
In r268693, we started requiring that SelectionDAGISel::Select return
void, but provided a default implementation that did just that by
calling into the old interface. Now that all targets have been
updated, we'll just remove the default implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270454 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 16:52:53 +00:00
David Blaikie
5131c267e1 llvm-dwp: Fix the build by moving DWPStringPool into the llvm namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270453 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 16:45:00 +00:00
Amaury Sechet
000b227286 Extract renaming from D19181
Summary: This needs to get in before anything is released concerning attribute. If the old name gets in the wild, then we are stuck with it forever. Putting it in its own diff should getting that part at least in fast.

Reviewers: Wallbraker, whitequark, joker.eph, echristo, rafael, jyknight

Subscribers: llvm-commits, joker.eph

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270452 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 16:38:25 +00:00
Xinliang David Li
1386ead074 [profile] show more statistics
Add value profile statistics with the 'show' command.





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270450 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 16:36:11 +00:00
David Blaikie
018cdc89a0 llvm-dwp: Add an abstraction for the DWP string pool
Also reference strings in the memory mapped file, reduces memory usage
on a large test case by 18.5%.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270449 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 16:32:11 +00:00
Aaron Ballman
e2dfcd9070 Removing a switch statement that contains only a default label; NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270444 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 15:52:59 +00:00
Diana Picus
bbf43bf006 [BPF] Remove exit-on-error flag in test (PR27766)
The exit-on-error flag on the many_args1.ll test is needed to avoid an
unreachable in BPFTargetLowering::LowerCall. We can also avoid it by ignoring
any superfluous arguments to the call (i.e. any arguments after the first 5).

Fixes PR27766.

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

v2 of r270419

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270440 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 14:57:19 +00:00
Asaf Badouh
ab5f9266a7 [X86][RTM] _xabort() should not have "noreturn" attribute
Differential Revision: http://reviews.llvm.org/D20518

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270437 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 14:04:17 +00:00
Alexander Potapenko
1c9f2a9b43 [InlineAsm] Avoid creating extra string instances in ConstraintInfo::Parse()
Don't create unnecessary std::string objects when pushing back to |pCodes|.
NFC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270436 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 13:58:04 +00:00
Simon Pilgrim
f6a6e81b7e [X86][AVX] Added tests that access ymm registers before and after explicit vzeroupper/vzeroall calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270434 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 13:03:45 +00:00
Renato Golin
4bd3c7629d Reverts "[BPF] Remove exit-on-error flag in test (PR27766)"
This patch reverts r270419 because it broke a lot of buildbots,
mostly Windows. We'd like help in investigating the issues, but
for now, it should stay out.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270433 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 13:02:11 +00:00
Simon Pilgrim
21481f6c67 [X86][SSE] Regenerated scalar load folding tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270431 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 12:53:09 +00:00
Simon Pilgrim
481edf8ca6 [X86][SSE] Regenerated partial register update tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270430 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 12:49:37 +00:00
Simon Pilgrim
67270d4b29 [X86][SSE] Updated sse/avx cvtsi2sd tests to use non-constant value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270425 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 12:41:51 +00:00
Simon Pilgrim
a6265aaca2 [X86][SSE2] Regenerated sse2 upgraded intrinsics tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270423 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 12:40:11 +00:00
Simon Pilgrim
55494e1f78 [X86][AVX] Regenerated avx upgraded intrinsics tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270422 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 12:39:06 +00:00
Diana Picus
a466b7ce58 [BPF] Remove exit-on-error flag in test (PR27766)
The exit-on-error flag on the many_args1.ll test is needed to avoid an
unreachable in BPFTargetLowering::LowerCall. We can also avoid it by ignoring
any superfluous arguments to the call (i.e. any arguments after the first 5).

Fixes PR27766

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270419 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-23 12:33:34 +00:00