]> granicus.if.org Git - llvm/log
llvm
7 years agoX86FloatingPoint: Add some static assert, cleanup; NFC
Matthias Braun [Wed, 31 May 2017 20:30:17 +0000 (20:30 +0000)]
X86FloatingPoint: Add some static assert, cleanup; NFC

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

7 years agoAdded missing break; added LLVM_FALLTHROUGH to address warning: this statement may...
Galina Kistanova [Wed, 31 May 2017 20:25:13 +0000 (20:25 +0000)]
Added missing break; added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years ago[libFuzzer] fix a test to match the new sanitizer run-time
Kostya Serebryany [Wed, 31 May 2017 19:47:11 +0000 (19:47 +0000)]
[libFuzzer] fix a test to match the new sanitizer run-time

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Wed, 31 May 2017 19:41:33 +0000 (19:41 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years ago[IR] Add additional addParamAttr/removeParamAttr to AttributeList API
Reid Kleckner [Wed, 31 May 2017 19:23:09 +0000 (19:23 +0000)]
[IR] Add additional addParamAttr/removeParamAttr to AttributeList API

Summary:
Fairly straightforward patch to fill in some of the holes in the
attributes API with respect to accessing parameter/argument attributes.
The patch aims to step further towards encapsulating the
idx+FirstArgIndex pattern to access these attributes to within the
AttributeList.

Patch by Daniel Neilson!

Reviewers: rnk, chandlerc, pete, javed.absar, reames

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D33355

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

7 years ago[TableGen] Make Record::getValueAsString and getValueAsListOfStrings return StringRef...
Craig Topper [Wed, 31 May 2017 19:01:11 +0000 (19:01 +0000)]
[TableGen] Make Record::getValueAsString and getValueAsListOfStrings return StringRefs instead of std::string

Internally both these methods just return the result of getValue on either a StringInit or a CodeInit object. In both cases this returns a StringRef pointing to a string allocated in the BumpPtrAllocator so its not going anywhere. So we can just pass that StringRef along.

This is a fairly naive patch that targets just the build failures caused by this change. There's additional work that can be done to avoid creating std::string at call sites that still think getValueAsString returns a std::string. I'll try to clean those up in future patches.

Differential Revision: https://reviews.llvm.org/D33710

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

7 years ago[BPF] Correct the file name of the -gen-asm-matcher output file to not start with...
Craig Topper [Wed, 31 May 2017 19:01:05 +0000 (19:01 +0000)]
[BPF] Correct the file name of the -gen-asm-matcher output file to not start with X86.

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

7 years ago[ThinLTO] Reduce unnecessary map lookups during combined summary write
Teresa Johnson [Wed, 31 May 2017 18:58:11 +0000 (18:58 +0000)]
[ThinLTO] Reduce unnecessary map lookups during combined summary write

Summary:
Don't assign values to undefined references, simply don't emit those
reference edges as they are not useful (we were already not emitting
call edges to undefined refs).

Also, streamline the later lookup of value ids when writing the
summaries, by combining the check for value id existence with the access
of that value id.

Reviewers: pcc

Subscribers: Prazek, llvm-commits, inglorion

Differential Revision: https://reviews.llvm.org/D33634

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

7 years ago[ScheduleDAG] Deal with already scheduled loads in ScheduleDAG.
Nirav Dave [Wed, 31 May 2017 18:43:17 +0000 (18:43 +0000)]
[ScheduleDAG] Deal with already scheduled loads in ScheduleDAG.

Summary:
If we attempt to unfold an SUnit in ScheduleDAG that results in
finding an already scheduled load, we must should abort the
unfold as it will not improve scheduling.

This fixes PR32610.

Reviewers: jmolloy, sunfish, bogner, spatel

Subscribers: llvm-commits, MatzeB

Differential Revision: https://reviews.llvm.org/D32911

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

7 years agoTargetMachine: Indicate whether machine verifier passes.
Matthias Braun [Wed, 31 May 2017 18:41:23 +0000 (18:41 +0000)]
TargetMachine: Indicate whether machine verifier passes.

This adds a callback to the LLVMTargetMachine that lets target indicate
that they do not pass the machine verifier checks in all cases yet.

This is intended to be a temporary measure while the targets are fixed
allowing us to enable the machine verifier by default with
EXPENSIVE_CHECKS enabled!

Differential Revision: https://reviews.llvm.org/D33696

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

7 years ago[sanitizer-coverage] remove stale code (old coverage); llvm part
Kostya Serebryany [Wed, 31 May 2017 18:27:33 +0000 (18:27 +0000)]
[sanitizer-coverage] remove stale code (old coverage); llvm  part

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

7 years ago[PowerPC] Correctly specify the cache line size for Power 7, 8 and 9.
Sean Fertile [Wed, 31 May 2017 18:20:17 +0000 (18:20 +0000)]
[PowerPC] Correctly specify the cache line size for Power 7, 8 and 9.

Fixes PPCTTIImpl::getCacheLineSize() returning the wrong cache line size for
newer ppc processors.

Commiting on behalf of Stefan Pintilie.
Differential Revision: https://reviews.llvm.org/D33656

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

7 years agoRevert "[Atomics][LoopIdiom] Recognize unordered atomic memcpy"
Anna Thomas [Wed, 31 May 2017 17:20:51 +0000 (17:20 +0000)]
Revert "[Atomics][LoopIdiom] Recognize unordered atomic memcpy"

This reverts commit r304310.

It caused build failures in polly and mingw
due to undefined reference to
llvm::RTLIB::getMEMCPY_ELEMENT_ATOMIC.

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

7 years ago[PPC] Inline expansion of memcmp
Zaara Syeda [Wed, 31 May 2017 17:12:38 +0000 (17:12 +0000)]
[PPC] Inline expansion of memcmp

This patch does an inline expansion of memcmp.
It changes the memcmp library call into an inline expansion when the size is
known at compile time and is under a target specified threshold.
This expansion is implemented in CodeGenPrepare and expands into straight line
code. The target specifies a maximum load size and the expansion works by using
this size to load the two sources, compare, and exit early if a difference is
found. It also has a special case when the memcmp result is used in a compare
to zero equality.

Differential Revision: https://reviews.llvm.org/D28637

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Wed, 31 May 2017 17:10:03 +0000 (17:10 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years ago[AMDGPU] Fix bugs in new waitcnt pass. Add test.
Mark Searles [Wed, 31 May 2017 16:44:23 +0000 (16:44 +0000)]
[AMDGPU] Fix bugs in new waitcnt pass. Add test.
- new waitcnt pass remains off by default; -enable-si-insert-waitcnts=1 to enable it
- fix handling of PERMUTE ops
- fix insertion of waitcnt instrs at function begin/end ( port of analogous code that was added to old waitcnt pass )
- add new test

  Differential Revision: https://reviews.llvm.org/D33114

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

7 years ago[Atomics][LoopIdiom] Recognize unordered atomic memcpy
Anna Thomas [Wed, 31 May 2017 16:39:52 +0000 (16:39 +0000)]
[Atomics][LoopIdiom] Recognize unordered atomic memcpy

Summary:
Expanding the loop idiom test for memcpy to also recognize unordered atomic memcpy.
The only difference for recognizing
an unordered atomic memcpy and instead of a normal memcpy is
that the loads and/or stores involved are unordered atomic operations.
Background:  http://lists.llvm.org/pipermail/llvm-dev/2017-May/112779.html

Patch by Daniel Neilson!

Reviewers: reames, anna, skatkov

Reviewed By: reames

Subscribers: llvm-commits, mzolotukhin

Differential Revision: https://reviews.llvm.org/D33243

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

7 years ago[AMDGPU][MC] New syntax for ds_swizzle_b32 offset
Dmitry Preobrazhensky [Wed, 31 May 2017 16:26:47 +0000 (16:26 +0000)]
[AMDGPU][MC] New syntax for ds_swizzle_b32 offset

See Bug 28601: https://bugs.llvm.org//show_bug.cgi?id=28601

Reviewers: artem.tamazov, vpykhtin

Differential Revision: https://reviews.llvm.org/D33542

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

7 years ago[AArch64] Enable FeatureFuseAES on Cortex-A53.
Florian Hahn [Wed, 31 May 2017 15:50:03 +0000 (15:50 +0000)]
[AArch64] Enable FeatureFuseAES on Cortex-A53.

It improves performance on Cortex-A53.

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

7 years ago[AArch64] Enable FeatureFuseAES on Cortex-A73.
Florian Hahn [Wed, 31 May 2017 15:25:25 +0000 (15:25 +0000)]
[AArch64] Enable FeatureFuseAES on Cortex-A73.

It improves performance on Cortex-A73.

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

7 years agoFix assertion when merging multiple empty AttributeLists
Reid Kleckner [Wed, 31 May 2017 14:24:06 +0000 (14:24 +0000)]
Fix assertion when merging multiple empty AttributeLists

Patch by Nicholas Wilson!

Differential Revision: https://reviews.llvm.org/D33627

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

7 years ago[DAG] Avoid use of stale store.
Nirav Dave [Wed, 31 May 2017 13:36:17 +0000 (13:36 +0000)]
[DAG] Avoid use of stale store.

Correct references to alignment of store which may be deleted in a
previous iteration of merge. Instead use first store that would be
merged.

Corrects pr33172's use-after-poison caught by ASan.

Reviewers: spatel, hfinkel, RKSimon

Reviewed By: RKSimon

Subscribers: thegameg, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D33686

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

7 years ago[PowerPC] Fix a performance bug for PPC::XXPERMDI.
Tony Jiang [Wed, 31 May 2017 13:09:57 +0000 (13:09 +0000)]
[PowerPC] Fix a performance bug for PPC::XXPERMDI.

There are some VectorShuffle Nodes in SDAG which can be selected to XXPERMDI
Instruction, this patch recognizes them and does the selection to improve
the PPC performance.

Differential Revision: https://reviews.llvm.org/D33404

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

7 years agoRegenerate xchg-nofold.ll expected results. NFC.
Amaury Sechet [Wed, 31 May 2017 09:44:08 +0000 (09:44 +0000)]
Regenerate xchg-nofold.ll expected results. NFC.

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

7 years ago[PowerPC] Eliminate integer compare instructions - vol. 3
Nemanja Ivanovic [Wed, 31 May 2017 08:04:07 +0000 (08:04 +0000)]
[PowerPC] Eliminate integer compare instructions - vol. 3

This patch builds upon https://reviews.llvm.org/rL302810 to add
handling for the 64-bit SETEQ patterns.

Differential Revision: https://reviews.llvm.org/D33369

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

7 years ago[AVR] Fix a big in shift operator lowering; Authored by Dr. Gergo Erdi
Dylan McKay [Wed, 31 May 2017 06:27:46 +0000 (06:27 +0000)]
[AVR] Fix a big in shift operator lowering; Authored by Dr. Gergo Erdi

When generating code for a shift loop, check the shift
 amount against the literal value 0, not R0

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

7 years ago[AVR] CPIRdK can only work with r16..r31; Authored by Dr. Gergo Erdi
Dylan McKay [Wed, 31 May 2017 06:10:59 +0000 (06:10 +0000)]
[AVR] CPIRdK can only work with r16..r31; Authored by Dr. Gergo Erdi
(https://github.com/avr-rust/rust/issues/50)

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

7 years ago[PowerPC] Eliminate integer compare instructions - vol. 2
Nemanja Ivanovic [Wed, 31 May 2017 05:40:25 +0000 (05:40 +0000)]
[PowerPC] Eliminate integer compare instructions - vol. 2

This patch builds upon https://reviews.llvm.org/rL302810 to add
handling for bitwise logical operations in general purpose registers.
The idea is to keep the values in GPRs as long as possible - only
extracting them to a condition register bit when no further operations
are to be done.

Differential Revision: https://reviews.llvm.org/D31851

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

7 years ago[TableGen] Implement non-const versions of Record::getValue by delegating to the...
Craig Topper [Wed, 31 May 2017 05:12:36 +0000 (05:12 +0000)]
[TableGen] Implement non-const versions of Record::getValue by delegating to the const versions to avoid duplicate code. NFC

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

7 years ago[TableGen] Make one of RecordVal's constructors delegate to the other to reduce dupli...
Craig Topper [Wed, 31 May 2017 05:12:33 +0000 (05:12 +0000)]
[TableGen] Make one of RecordVal's constructors delegate to the other to reduce duplicate code.

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

7 years ago[ObjectYAML] Split CodeViewYAML into 3 pieces.
Zachary Turner [Wed, 31 May 2017 04:17:13 +0000 (04:17 +0000)]
[ObjectYAML] Split CodeViewYAML into 3 pieces.

The code was a mess and disorganized due to the sheer amount
of it being in one file.  So I'm splitting this into three files.
One for CodeView types, one for CodeView symbols, and one for
CodeView debug subsections.  NFC.

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

7 years ago[coroutines] Call initializePass in coroutine pass constructors
Gor Nishanov [Wed, 31 May 2017 03:12:42 +0000 (03:12 +0000)]
[coroutines] Call initializePass in coroutine pass constructors

Summary:

Fixes: https://bugs.llvm.org/show_bug.cgi?id=33226
Reviewers: chandlerc, davide, majnemer, dblaikie

Reviewed By: chandlerc

Subscribers: EricWF, llvm-commits

Differential Revision: https://reviews.llvm.org/D33701

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

7 years ago[CFLAA] Add missing break; note things are broken.
George Burgess IV [Wed, 31 May 2017 02:35:26 +0000 (02:35 +0000)]
[CFLAA] Add missing break; note things are broken.

Thanks to Galina Kistanova for finding the missing break!

When trying to make a test for this, I realized our logic for handling
extractvalue/insertvalue/... is somewhat broken. This makes constructing
a test-case for this missing break nontrivial.

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

7 years agoX86FrameLowering: No need to mark FP as live-in everywhere
Matthias Braun [Wed, 31 May 2017 02:11:10 +0000 (02:11 +0000)]
X86FrameLowering: No need to mark FP as live-in everywhere

The frame pointer (when used as frame pointer) is a reserved register.
We do not track liveness of reserved registers and hence do not need to
add them to the basic block livein lists.

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Wed, 31 May 2017 01:54:18 +0000 (01:54 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years agoNewGVN: Fix PR 33185 by checking whether we need to recursively
Daniel Berlin [Wed, 31 May 2017 01:47:32 +0000 (01:47 +0000)]
NewGVN: Fix PR 33185 by checking whether we need to recursively
generate a phi of ops, which we don't currently support.

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

7 years agoFix test that wasn't update_test_check'd
Daniel Berlin [Wed, 31 May 2017 01:47:29 +0000 (01:47 +0000)]
Fix test that wasn't update_test_check'd

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

7 years agoInstructionSimplify: Remove now-redundant reachability tests, as dominates() already...
Daniel Berlin [Wed, 31 May 2017 01:47:24 +0000 (01:47 +0000)]
InstructionSimplify: Remove now-redundant reachability tests, as dominates() already does them

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

7 years agoMark a test as requiring a default triple
Vedant Kumar [Wed, 31 May 2017 01:42:55 +0000 (01:42 +0000)]
Mark a test as requiring a default triple

This test assumes that llc can infer a default triple. I'm not sure why
exactly, but the Verify MachineInstrs bot requires tests to be explicit
about this dependency.

This commit follows the lead from r248452 and adds in 'REQUIRES:
default_triple' to omit-empty.ll.

Bot URL: http://lab.llvm.org:8080/green/job/Verify-Machineinstrs_AArch64/7500

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Wed, 31 May 2017 01:33:39 +0000 (01:33 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years agoARM: Fix cmpxchg O0 expansion
Matthias Braun [Wed, 31 May 2017 01:21:35 +0000 (01:21 +0000)]
ARM: Fix cmpxchg O0 expansion

This is the equivalent of r304048 for ARM:

- Rewrite livein calculation to use the computeLiveIns() helper
  function. This is slightly less efficient but easier to reason about
  and doesn't unnecessarily add pristine and reserved registers[1]
- Zero the status register at the beginning of the loop to make sure it
  has a defined value.
- Remove kill flags of values that need to stay alive throughout the loop.

[1] An upcoming commit of mine will tighten the MachineVerifier to catch
    these.

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

7 years agoARM: Do not add reserved registers to block livein lists; NFC
Matthias Braun [Wed, 31 May 2017 01:21:30 +0000 (01:21 +0000)]
ARM: Do not add reserved registers to block livein lists; NFC

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

7 years ago[CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings...
Eugene Zelenko [Wed, 31 May 2017 01:10:10 +0000 (01:10 +0000)]
[CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).

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

7 years agoFix CodeView-related modules build failures post-r304248
Vedant Kumar [Wed, 31 May 2017 01:08:43 +0000 (01:08 +0000)]
Fix CodeView-related modules build failures post-r304248

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

7 years ago[ObjectYAML] Clean up the CodeView headers a bit.
Zachary Turner [Wed, 31 May 2017 01:08:36 +0000 (01:08 +0000)]
[ObjectYAML] Clean up the CodeView headers a bit.

CodeViewYAML.h attempts to hide the details of many of the
CodeView yaml structures and types, but at the same time it
exposes the mapping traits for them to external users of the
header.

This patch just hides these in the implementation files so that
the interface is kept as simple as possible.

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

7 years agoFix misspelling
Alina Sbirlea [Wed, 31 May 2017 01:00:51 +0000 (01:00 +0000)]
Fix misspelling

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

7 years agoAdd latency info for Exynos interleaved Load/Store instructions.
Abderrazek Zaafrani [Wed, 31 May 2017 00:20:55 +0000 (00:20 +0000)]
Add latency info for Exynos interleaved Load/Store instructions.

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

7 years agoTry to fix build again.
Zachary Turner [Tue, 30 May 2017 23:57:46 +0000 (23:57 +0000)]
Try to fix build again.

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

7 years ago[CodeView] Move CodeView symbol yaml logic to ObjectYAML.
Zachary Turner [Tue, 30 May 2017 23:50:44 +0000 (23:50 +0000)]
[CodeView] Move CodeView symbol yaml logic to ObjectYAML.

This continues the effort to get the CodeView YAML parsing logic
into ObjectYAML.  After this patch, the only missing piece will
be the CodeView debug symbol subsections.

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

7 years agoFix bug on Big-Endian system, due to reference to vector out of scope.
Eric Beckmann [Tue, 30 May 2017 23:10:57 +0000 (23:10 +0000)]
Fix bug on Big-Endian system, due to reference to vector out of scope.

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

7 years agoMachineInstr: Do not skip dead def operands when printing.
Matthias Braun [Tue, 30 May 2017 23:09:21 +0000 (23:09 +0000)]
MachineInstr: Do not skip dead def operands when printing.

This was introduced a long time ago in r86583 when regmask operands
didn't exist. Nowadays the behavior hurts more than it helps. This
removes it.

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

7 years agoThis patch should fix various clang warnings and a use of to_string
Eric Beckmann [Tue, 30 May 2017 22:29:06 +0000 (22:29 +0000)]
This patch should fix various clang warnings and a use of to_string
which isn't support before c++11.

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

7 years ago[AntiDepBreaker] Revert r299124 and add a test.
Tim Shen [Tue, 30 May 2017 22:26:52 +0000 (22:26 +0000)]
[AntiDepBreaker] Revert r299124 and add a test.

Summary:
AntiDepBreaker intends to add all live-outs, including the implicit
CSRs, in StartBlock. r299124 was done without understanding that
intention.

Now with the live-ins propagated correctly (D32464), we can revert this change.

Reviewers: MatzeB, qcolombet

Subscribers: nemanjai, llvm-commits

Differential Revision: https://reviews.llvm.org/D33697

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

7 years agoMIR: update test for noVRegs removal.
Tim Northover [Tue, 30 May 2017 22:02:19 +0000 (22:02 +0000)]
MIR: update test for noVRegs removal.

I think I hadn't git pulled recently enough to bring it in.

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

7 years agoTry to fix build.
Zachary Turner [Tue, 30 May 2017 22:00:37 +0000 (22:00 +0000)]
Try to fix build.

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

7 years ago[CodeView] Move CodeView YAML code to ObjectYAML.
Zachary Turner [Tue, 30 May 2017 21:53:05 +0000 (21:53 +0000)]
[CodeView] Move CodeView YAML code to ObjectYAML.

This is the beginning of an effort to move the codeview yaml
reader / writer into ObjectYAML so that it can be shared.
Currently the only consumer / producer of CodeView YAML is
llvm-pdbdump, but CodeView can exist outside of PDB files, and
indeed is put into object files and passed to the linker to
produce PDB files.  Furthermore, there are subtle differences
in the types of records that show up in object file CodeView
vs PDB file CodeView, but they are otherwise 99% the same.

By having this code in ObjectYAML, we can have llvm-pdbdump
reuse this code, while teaching obj2yaml and yaml2obj to use
this syntax for dealing with object files that can contain
CodeView.

This patch only adds support for CodeView type information
to ObjectYAML.  Subsequent patches will add support for
CodeView symbol information.

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

7 years agoTargetPassConfig: Keep a reference to an LLVMTargetMachine; NFC
Matthias Braun [Tue, 30 May 2017 21:36:41 +0000 (21:36 +0000)]
TargetPassConfig: Keep a reference to an LLVMTargetMachine; NFC

TargetPassConfig is not useful for targets that do not use the CodeGen
library, so we may just as well store a pointer to an
LLVMTargetMachine instead of just to a TargetMachine.

While at it, also change the constructor to take a reference instead of a
pointer as the TM must not be nullptr.

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

7 years agoMIR: remove explicit "noVRegs" property.
Tim Northover [Tue, 30 May 2017 21:28:57 +0000 (21:28 +0000)]
MIR: remove explicit "noVRegs" property.

We can infer this from the incoming MIR, so there's no reason to
represent it with a special flag.

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

7 years ago[PartialInlining] Shrinkwrap allocas with live range contained in outline region.
Xinliang David Li [Tue, 30 May 2017 21:22:18 +0000 (21:22 +0000)]
[PartialInlining] Shrinkwrap allocas with live range contained in outline region.

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

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

7 years ago[Localizer] Don't trick to be smart for the insertion point
Quentin Colombet [Tue, 30 May 2017 20:53:06 +0000 (20:53 +0000)]
[Localizer] Don't trick to be smart for the insertion point

There is no guarantee that the first use of a constant that is traversed
is actually the first in the related basic block. Thus, if we use that
as the insertion point we may end up with definitions that don't
dominate there use.

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

7 years ago[llvm-config] Fix cflags test looking for "warning"
Ben Langmuir [Tue, 30 May 2017 20:21:47 +0000 (20:21 +0000)]
[llvm-config] Fix cflags test looking for "warning"

This will fail if you configure with e.g. -Wno-unknown-warning-option.
Change it to check for 'warning:' just like we did for 'error:' in
r289484.

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

7 years ago[LV] Reapply r303763 with fix for PR33193
Matthew Simpson [Tue, 30 May 2017 19:55:57 +0000 (19:55 +0000)]
[LV] Reapply r303763 with fix for PR33193

r303763 caused build failures in some out-of-tree tests due to an assertion in
TTI. The original patch updated cost estimates for induction variable update
instructions marked for scalarization. However, it didn't consider that the
incoming value of an induction variable phi node could be a cast instruction.
This caused queries for cast instruction costs with a mix of vector and scalar
types. This patch includes a fix for cast instructions and the test case from
PR33193.

The fix was suggested by Jonas Paulsson <paulsson@linux.vnet.ibm.com>.

Reference: https://bugs.llvm.org/show_bug.cgi?id=33193
Original Differential Revision: https://reviews.llvm.org/D33457

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

7 years ago[Object] Remove unused field + constructor.
Benjamin Kramer [Tue, 30 May 2017 19:37:02 +0000 (19:37 +0000)]
[Object] Remove unused field + constructor.

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

7 years ago[Object] Fix pessimizing move.
Benjamin Kramer [Tue, 30 May 2017 19:36:58 +0000 (19:36 +0000)]
[Object] Fix pessimizing move.

Returning the Error by value triggers copy elision, the move is more
expensive. Clang rightfully warns about it.

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

7 years agoRevert "This patch closes PR28513: an optimization of multiplication by different...
Vedant Kumar [Tue, 30 May 2017 19:25:22 +0000 (19:25 +0000)]
Revert "This patch closes PR28513: an optimization of multiplication by different constants. It's implemented on DAG combiner level."

This reverts commit r304209.

I think this change is responsible for a tablgen failure in stage2 builds:

  http://green.lab.llvm.org/green/job/clang-stage2-configure-Rthinlto_build/2171/

I reproduced the failure locally (without ThinLTO), reverted the commit, rebuilt the stage1 clang, rebuilt the stage2 llvm-tblgen tool, and found that the crash disappears when the commit is reverted. Here is the stack trace:

FAILED: lib/Target/ARM/ARMGenRegisterBank.inc.tmp
cd /Volumes/Builds/pz-master-stage2-RA/lib/Target/ARM && /Volumes/Builds/pz-master-stage2-RA/bin/llvm-tblgen -gen-register-bank -I /Users/vk/llvm/lib/Target/ARM -I /Users/vk/llvm/include -I /Users/vk/llvm/lib/Target /Users/vk/llvm/lib/Target/ARM/ARM.td -o /Volumes
/Builds/pz-master-stage2-RA/lib/Target/ARM/ARMGenRegisterBank.inc.tmp
0  llvm-tblgen              0x0000000106fc9568 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  llvm-tblgen              0x0000000106fc9be6 SignalHandler(int) + 422
2  libsystem_platform.dylib 0x00000001076a7fba _sigtramp + 26
3  libsystem_platform.dylib 0x00007fff58deb468 _sigtramp + 1366570184
4  llvm-tblgen              0x0000000106e89cc7 llvm::CodeGenRegBank::getCompositeSubRegIndex(llvm::CodeGenSubRegIndex*, llvm::CodeGenSubRegIndex*) + 615
5  llvm-tblgen              0x0000000106e88be6 llvm::CodeGenRegister::computeSubRegs(llvm::CodeGenRegBank&) + 2182
6  llvm-tblgen              0x0000000106e8e9f0 llvm::CodeGenRegBank::CodeGenRegBank(llvm::RecordKeeper&) + 2192
7  llvm-tblgen              0x0000000106f384a1 llvm::EmitRegisterBank(llvm::RecordKeeper&, llvm::raw_ostream&) + 65
8  llvm-tblgen              0x0000000106f72c64 (anonymous namespace)::LLVMTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) + 1172
9  llvm-tblgen              0x0000000106fcb15f llvm::TableGenMain(char*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) + 3599
10 llvm-tblgen              0x0000000106f727a6 main + 134
11 libdyld.dylib            0x000000010733c6a5 start + 1
Stack dump:
0.      Program arguments: /Volumes/Builds/pz-master-stage2-RA/bin/llvm-tblgen -gen-register-bank -I /Users/vk/llvm/lib/Target/ARM -I /Users/vk/llvm/include -I /Users/vk/llvm/lib/Target /Users/vk/llvm/lib/Target/ARM/ARM.td -o /Volumes/Builds/pz-master-stage2-RA/lib/Target/ARM/ARMGenRegisterBank.inc.tmp
/bin/sh: line 1: 41986 Segmentation fault: 11  /Volumes/Builds/pz-master-stage2-RA/bin/llvm-tblgen -gen-register-bank -I /Users/vk/llvm/lib/Target/ARM -I /Users/vk/llvm/include -I /Users/vk/llvm/lib/Target /Users/vk/llvm/lib/Target/ARM/ARM.td -o /Volumes/Builds/pz
-master-stage2-RA/lib/Target/ARM/ARMGenRegisterBank.inc.tmp

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

7 years agoAdded missing break.
Galina Kistanova [Tue, 30 May 2017 19:02:49 +0000 (19:02 +0000)]
Added missing break.

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

7 years agoRevert "[Cloning] Take another pass at properly cloning debug info"
Keno Fischer [Tue, 30 May 2017 18:56:26 +0000 (18:56 +0000)]
Revert "[Cloning] Take another pass at properly cloning debug info"

At least one build bot is complaining. Will investigate after lunch.

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

7 years agoARM: Add missing flags to TBB_[JH]T pseudo instructions
Matthias Braun [Tue, 30 May 2017 18:52:33 +0000 (18:52 +0000)]
ARM: Add missing flags to TBB_[JH]T pseudo instructions

NFC except for calming down the machine verifier in some cases.

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

7 years ago[Cloning] Take another pass at properly cloning debug info
Keno Fischer [Tue, 30 May 2017 18:28:30 +0000 (18:28 +0000)]
[Cloning] Take another pass at properly cloning debug info

Summary:
In rL302576, DISubprograms gained the constraint that a !dbg attachments to functions must
have a 1:1 mapping to DISubprograms. As part of that change, the function cloning support
was adjusted to attempt to enforce this invariant during cloning. However, there
were several problems with the implementation. Part of these were fixed in rL304079.
However, there was a more fundamental problem with these changes, namely that it
bypasses the matadata value map, causing the cloned metadata to be a mix of metadata
pointing to the new suprogram (where manual code was added to fix those up) and the
old suprogram (where this was not the case). This mismatch could cause a number of
different assertion failures in the DWARF emitter. Some of these are given at
https://github.com/JuliaLang/julia/issues/22069, but some others have been observed
as well. Attempt to rectify this by partially reverting the manual DI metadata fixup,
and instead using the standard value map approach. To retain the desired semantics
of not duplicating the compilation unit and inlined subprograms, explicitly freeze
these in the value map.

Reviewers: dblaikie, aprantl, GorNishanov, echristo

Reviewed By: aprantl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D33655

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

7 years agoAdding parsing ability for .res file.
Eric Beckmann [Tue, 30 May 2017 18:19:06 +0000 (18:19 +0000)]
Adding parsing ability for .res file.

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D33566

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

7 years ago[InstCombine] Add test cases to show missed opportunities to remove compare instructi...
Craig Topper [Tue, 30 May 2017 17:47:59 +0000 (17:47 +0000)]
[InstCombine] Add test cases to show missed opportunities to remove compare instructions after cttz/ctlz/ctpop where some bits of the input is known.

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

7 years ago[Hexagon] Improve code generation for 32x32-bit multiplication
Krzysztof Parzyszek [Tue, 30 May 2017 17:47:51 +0000 (17:47 +0000)]
[Hexagon] Improve code generation for 32x32-bit multiplication

For multiplications of 64-bit values (giving 64-bit result), detect
cases where the arguments are sign-extended 32-bit values, on a per-
operand basis. This will allow few patterns to match a wider variety
of combinations in which extensions can occur.

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

7 years ago[CodeView] Add more DebugSubsection implementations.
Zachary Turner [Tue, 30 May 2017 17:13:33 +0000 (17:13 +0000)]
[CodeView] Add more DebugSubsection implementations.

This adds implementations for Symbols and FrameData, and renames
the existing codeview::StringTable class to conform to the
DebugSectionStringTable convention.

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

7 years ago[SelectionDAG] Remove special case for ISD::FPOWI from the strict FP intrinsic handling.
Craig Topper [Tue, 30 May 2017 17:12:18 +0000 (17:12 +0000)]
[SelectionDAG] Remove special case for ISD::FPOWI from the strict FP intrinsic handling.

This code was compensating for FPOWI defaulting to Legal and many targets not changing it to Expand. This was fixed in r304215 to default to Expand so this special handling should no longer be necessary.

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

7 years ago[AMDGPU] Allow SDWA in instructions with immediates and SGPRs
Stanislav Mekhanoshin [Tue, 30 May 2017 16:49:24 +0000 (16:49 +0000)]
[AMDGPU] Allow SDWA in instructions with immediates and SGPRs

An encoding does not allow to use SDWA in an instruction with
scalar operands, either literals or SGPRs. That is however possible
to copy these operands into a VGPR first.

Several copies of the value are produced if multiple SDWA conversions
were done. To cleanup MachineLICM (to hoist copies out of loops),
MachineCSE (to remove duplicate copies) and SIFoldOperands (to replace
SGPR to VGPR copy with immediate copy right to the VGPR) runs are added
after the SDWA pass.

Differential Revision: https://reviews.llvm.org/D33583

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

7 years ago[CodeView] Rename ModuleDebugFragment -> DebugSubsection.
Zachary Turner [Tue, 30 May 2017 16:36:15 +0000 (16:36 +0000)]
[CodeView] Rename ModuleDebugFragment -> DebugSubsection.

This is more concise, and matches the terminology used in other
parts of the codebase more closely.

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

7 years ago [AMDGPU] Require waitcnt before barrier for all targets; adjust tests.
Mark Searles [Tue, 30 May 2017 16:22:43 +0000 (16:22 +0000)]
[AMDGPU] Require waitcnt before barrier for all targets; adjust tests.

    Differential Revision: https://reviews.llvm.org/D33576

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

7 years ago[SelectionDAG] Set ISD::FPOWI to Expand by default
Craig Topper [Tue, 30 May 2017 15:27:55 +0000 (15:27 +0000)]
[SelectionDAG] Set ISD::FPOWI to Expand by default

Summary:
Currently FPOWI defaults to Legal and LegalizeDAG.cpp turns Legal into Expand for this opcode because Legal is a "lie".

This patch changes the default for this opcode to Expand and removes the hack from LegalizeDAG.cpp. It also removes all the code in the targets that set this opcode to Expand themselves since they can just rely on the default.

Reviewers: spatel, RKSimon, efriedma

Reviewed By: RKSimon

Subscribers: jfb, dschuff, sbc100, jgravelle-google, nemanjai, javed.absar, andrew.w.kaylor, llvm-commits

Differential Revision: https://reviews.llvm.org/D33530

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

7 years agoThis patch closes PR28513: an optimization of multiplication by different constants.
Andrew V. Tischenko [Tue, 30 May 2017 13:00:44 +0000 (13:00 +0000)]
This patch closes PR28513: an optimization of multiplication by different constants.
It's implemented on DAG combiner level.

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

7 years ago[SCEV][NFC] Remove redundant params from isAvailableAtLoopEntry
Max Kazantsev [Tue, 30 May 2017 10:54:58 +0000 (10:54 +0000)]
[SCEV][NFC] Remove redundant params from isAvailableAtLoopEntry

Params DT and LI are redundant, because these values are contained in fields anyways.

Differential Revision: https://reviews.llvm.org/D33668

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

7 years ago[SystemZ] Add decimal floating-point instructions
Ulrich Weigand [Tue, 30 May 2017 10:15:16 +0000 (10:15 +0000)]
[SystemZ] Add decimal floating-point instructions

This adds assembler / disassembler support for the decimal
floating-point instructions.  Since LLVM does not yet have
support for decimal float types, these cannot be used for
codegen at this point.

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

7 years ago[SystemZ] Add hexadecimal floating-point instructions
Ulrich Weigand [Tue, 30 May 2017 10:13:23 +0000 (10:13 +0000)]
[SystemZ] Add hexadecimal floating-point instructions

This adds assembler / disassembler support for the hexadecimal
floating-point instructions.  Since the Linux ABI does not use
any hex float data types, these are not useful for codegen.

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

7 years ago[SystemZ] Add missing assembler/disassembler tests
Ulrich Weigand [Tue, 30 May 2017 10:11:13 +0000 (10:11 +0000)]
[SystemZ] Add missing assembler/disassembler tests

A few instructions that are actually correctly supported in the
assembler and disassembler did not have any tests.

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

7 years ago[MC] Fix constant pools with DenseMap sentinel values
Oliver Stannard [Tue, 30 May 2017 09:37:11 +0000 (09:37 +0000)]
[MC] Fix constant pools with DenseMap sentinel values

The MC ConstantPool class uses a DenseMap to track generated constants, with
the int64_t value of the constant as the key. This fails when values of
0x7fffffffffffffff or 0x7ffffffffffffffe are inserted into the constant pool, as
these are sentinel values for DenseMap.

The fix is to use std::map instead, which doesn't use sentinel values.

Differential revision: https://reviews.llvm.org/D33667

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

7 years ago[mips] Expansion of LI.S and LI.D
Zoran Jovanovic [Tue, 30 May 2017 09:33:43 +0000 (09:33 +0000)]
[mips] Expansion of LI.S and LI.D
Author: smaksimovic
Reviewers: dsanders sdardis
Introduces LI.S and LI.D pseudo instructions with floating point operands.
Differential Revision: https://reviews.llvm.org/D14390

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

7 years agoFix PR33031: correct the estimate of maximum offset for instructions spilling/filling...
Kristof Beyls [Tue, 30 May 2017 06:58:41 +0000 (06:58 +0000)]
Fix PR33031: correct the estimate of maximum offset for instructions spilling/filling the stack.

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

7 years agoNewGVN: Compute hash value of expression on demand and use it in inequality testing.
Daniel Berlin [Tue, 30 May 2017 06:58:18 +0000 (06:58 +0000)]
NewGVN: Compute hash value of expression on demand and use it in inequality testing.

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

7 years agoNewGVN: Fix PR33194, memory corruption by putting temporary instructions in tables...
Daniel Berlin [Tue, 30 May 2017 06:42:29 +0000 (06:42 +0000)]
NewGVN: Fix PR33194, memory corruption by putting temporary instructions in tables sometimes.

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

7 years agoAdded LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
Galina Kistanova [Tue, 30 May 2017 03:30:34 +0000 (03:30 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.

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

7 years agoAdded missing line continuation to HANDLE_DIEVALUE_SMALL and HANDLE_DIEVALUE_LARGE...
Galina Kistanova [Tue, 30 May 2017 03:21:12 +0000 (03:21 +0000)]
Added missing line continuation to HANDLE_DIEVALUE_SMALL and HANDLE_DIEVALUE_LARGE macros.

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

7 years agoReverted r303602, as it will be fixed in gtest.
Galina Kistanova [Tue, 30 May 2017 03:17:10 +0000 (03:17 +0000)]
Reverted r303602, as it will be fixed in gtest.

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

7 years agoRevert r303763, results in asserts i.e. while building Ruby.
Joerg Sonnenberger [Mon, 29 May 2017 22:52:17 +0000 (22:52 +0000)]
Revert r303763, results in asserts i.e. while building Ruby.

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

7 years ago[TableGen] Use StringMap instead of DenseMap<StringRef> to unique CodeInit and String...
Craig Topper [Mon, 29 May 2017 21:49:37 +0000 (21:49 +0000)]
[TableGen] Use StringMap instead of DenseMap<StringRef> to unique CodeInit and StringInit objects. Override the allocator to keep using the BumpPtrAllocator. NFCI

StringMap is better suited to mapping strings than a DenseMap.

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

7 years ago[TableGen] Introduce DagInit::getArgs that returns an ArrayRef. Use it to fix 80...
Craig Topper [Mon, 29 May 2017 21:49:34 +0000 (21:49 +0000)]
[TableGen] Introduce DagInit::getArgs that returns an ArrayRef. Use it to fix 80 column violations in arg_begin/arg_end. Remove DagInit::args and use getArgs instead. NFC

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

7 years ago[ManagedStatic] Avoid putting function pointers in template args.
Benjamin Kramer [Mon, 29 May 2017 20:56:27 +0000 (20:56 +0000)]
[ManagedStatic] Avoid putting function pointers in template args.

This is super awkward, but GCC doesn't let us have template visible when
an argument is an inline function and -fvisibility-inlines-hidden is
used.

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

7 years ago[GlobalIsel] Fix a warning with GCC 7 -Wpedantic. NFCI.
Davide Italiano [Mon, 29 May 2017 20:13:22 +0000 (20:13 +0000)]
[GlobalIsel] Fix a warning with GCC 7 -Wpedantic. NFCI.

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

7 years ago[X86] Add tests for (ix bitcast (vxi1 and ...)). NFC.
Zvi Rackover [Mon, 29 May 2017 19:00:57 +0000 (19:00 +0000)]
[X86] Add tests for (ix bitcast (vxi1 and ...)). NFC.

To be improved by D33311.

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

7 years ago[X86] Replace undef value in flaky test
Zvi Rackover [Mon, 29 May 2017 18:27:00 +0000 (18:27 +0000)]
[X86] Replace undef value in flaky test

D33311 exposes the flakiness in this test. Replacing the undef placed by
bugpoint, makes it more interesting and robust.

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

7 years ago[ManagedStatic] Make object_creator/object_deleter visible again.
Benjamin Kramer [Mon, 29 May 2017 18:00:33 +0000 (18:00 +0000)]
[ManagedStatic] Make object_creator/object_deleter visible again.

They're now exposed as template args, which creates complications when
ManagedStatics are used across .so boundaries.

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

7 years agoDon't destroy ManagedStatics in a unit test.
Benjamin Kramer [Mon, 29 May 2017 17:25:37 +0000 (17:25 +0000)]
Don't destroy ManagedStatics in a unit test.

Turns out this is very hostile towards other unit tests running in the
same process, it unregisters all flags.

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