OSDN Git Service
Kamil Rytarowski [Thu, 1 Jun 2017 12:57:00 +0000 (12:57 +0000)]
[Solaris] Fix PR33228 - llvm::sys::fs::is_local_impl done right
Summary:
Solaris-specific implementation for llvm::sys::fs::is_local_impl.
FStype pattern matching might be a bit unreliable, but at least it fixes the build failure.
Reviewers: mgorny, nlopes, llvm-commits, krytarowski
Reviewed By: krytarowski
Subscribers: voskresensky.vladimir, krytarowski
Differential Revision: https://reviews.llvm.org/D33695
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304412
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Thu, 1 Jun 2017 12:03:16 +0000 (12:03 +0000)]
Only generate addcarry node when it is legal.
Summary:
This is a problem uncovered by stage2 testing. ADDCARRY end up being generated on target that do not support it.
The patch that introduced the problem has other patches layed on top of it, so we want to fix the issue rather than revert it to avoid creating a lor of churn.
A regression test will be added shortly, but this is committed as this in order to get the build back to green promptly.
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D33770
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304409
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 1 Jun 2017 11:39:39 +0000 (11:39 +0000)]
[PM/ThinLTO] Port the ThinLTO pipeline (both components) to the new PM.
Based on the original patch by Davide, but I've adjusted the API exposed
to just be different entry points rather than exposing more state
parameters. I've factored all the common logic out so that we don't have
any duplicate pipelines, we just stitch them together in different ways.
I think this makes the build easier to reason about and understand.
This adds a direct method for getting the module simplification pipeline
as well as a method to get the optimization pipeline. While not my
express goal, this seems nice and gives a good place comment about the
restrictions that are imposed on them.
I did make some minor changes to the way the pipelines are structured
here, but hopefully not ones that are significant or controversial:
1) I sunk the PGO indirect call promotion to only be run when we have
PGO enabled (or as part of the special ThinLTO pipeline).
2) I made the extra GlobalOpt run in ThinLTO just happen all the time
and at a slightly more powerful place (before we remove available
externaly functions). This seems like general goodness and not a big
compile time sink, so it didn't make sense to *only* use it in
ThinLTO. Fewer differences in the pipeline makes everything simpler
IMO.
3) I hoisted the ThinLTO stop point pre-link above the the RPO function
attr inference. The RPO inference won't infer anything terribly
meaningful pre-link (recursiveness?) so it didn't make a lot of
sense. But if the placement of RPO inference starts to matter, we
should move it to the canonicalization phase anyways which seems like
a better place for it (and there is a FIXME to this effect!). But
that seemed a bridge too far for this patch.
If we ever need to parameterize these pipelines more heavily, we can
always sink the logic to helper functions with parameters to keep those
parameters out of the public API. But the changes above seemed minor
that we could possible get away without the parameters entirely.
I added support for parsing 'thinlto' and 'thinlto-pre-link' names in
pass pipelines to make it easy to test these routines and play with them
in larger pipelines. I also added a really basic manifest of passes test
that will show exactly how the pipelines behave and work as well as
making updates to them clear.
Lastly, this factoring does introduce a nesting layer of module pass
managers in the default pipeline. I don't think this is a big deal and
the flexibility of decoupling the pipelines seems easily worth it.
Differential Revision: https://reviews.llvm.org/D33540
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304407
91177308-0d34-0410-b5e6-
96231b3b80d8
Zvi Rackover [Thu, 1 Jun 2017 11:27:57 +0000 (11:27 +0000)]
[X86] Match bitcast of vxi1 to pmovmsk
Summary:
Add an early combine to match patterns such as:
(i16 bitcast (v16i1 x))
->
(i16 movmsk (v16i8 sext (v16i1 x)))
This combine needs to happen early enough before
type-legalization scalarizes the result of the setcc.
Reviewers: igorb, craig.topper, RKSimon
Subscribers: delena, llvm-commits
Differential Revision: https://reviews.llvm.org/D33311
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304406
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Thu, 1 Jun 2017 11:14:17 +0000 (11:14 +0000)]
Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry.
Summary:
This is a continuation of the work started in D29872 . Passing the carry down as a value rather than as a glue allows for further optimizations. Introducing setcccarry makes the use of addc/subc unecessary and we can start the removal process.
This patch only introduce the optimization strictly required to get the same level of optimization as was available before nothing more.
Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D33374
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304404
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Thu, 1 Jun 2017 11:13:10 +0000 (11:13 +0000)]
Remove ISD::SETCC match from combineX86ADD. It's done improperly and doesn't work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304403
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Thu, 1 Jun 2017 10:48:04 +0000 (10:48 +0000)]
[DAGCombine] Refactor common addcarry pattern.
Summary: This pattern is no very useful per se, but it exposes optimization for toehr patterns that wouldn't kick in otherwize. It's very common and worth optimizing for.
Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D32756
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304402
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Thu, 1 Jun 2017 10:42:39 +0000 (10:42 +0000)]
[DAGCombine] (add/uaddo X, Carry) -> (addcarry X, 0, Carry)
Summary:
This enables further transforms.
Depends on D32916
Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D32925
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304401
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Beyls [Thu, 1 Jun 2017 07:31:43 +0000 (07:31 +0000)]
Make mcpu=generic the default for armv7-a and armv8-a.
As discussed in
http://lists.llvm.org/pipermail/llvm-dev/2017-May/113525.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304390
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 1 Jun 2017 06:56:16 +0000 (06:56 +0000)]
[TableGen] Remove RecordVal constructor that takes a StringRef and Record::setName(StringRef). Leave just the versions that take an Init.
They weren't used often enough to justify having two different interfaces. Push the responsiblity of creating a StringInit up to the caller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304388
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 1 Jun 2017 06:56:13 +0000 (06:56 +0000)]
[TableGen] Remove code for renaming anonymous register classes as it can never execute.
It tried to detect 9 letters (the length of anonymous) followed by a period. But anonymous classes start with "anonymous_" rather than "anonymous." these days.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304387
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 1 Jun 2017 06:56:11 +0000 (06:56 +0000)]
[TableGen] Use StringRef to capture getValueAsString in a couple more places. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304386
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Shen [Thu, 1 Jun 2017 01:02:12 +0000 (01:02 +0000)]
[ThinLTO] Migrate ThinLTOBitcodeWriter to the new PM.
Summary: Also see D33429 for other ThinLTO + New PM related changes.
Reviewers: davide, chandlerc, tejohnson
Subscribers: mehdi_amini, Prazek, cfe-commits, inglorion, llvm-commits, eraman
Differential Revision: https://reviews.llvm.org/D33525
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304378
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 1 Jun 2017 00:12:41 +0000 (00:12 +0000)]
[PartialInlining] Reduce outlining overhead by removing unneeded live-out(s)
Differential Revision: http://reviews.llvm.org/D33694
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304375
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Wed, 31 May 2017 23:25:25 +0000 (23:25 +0000)]
Add LiveRangeShrink pass to shrink live range within BB.
Summary: LiveRangeShrink pass moves instruction right after the definition with the same BB if the instruction and its operands all have more than one use. This pass is inexpensive and guarantees optimal live-range within BB.
Reviewers: davidxl, wmi, hfinkel, MatzeB, andreadb
Reviewed By: MatzeB, andreadb
Subscribers: hiraditya, jyknight, sanjoy, skatkov, gberry, jholewinski, qcolombet, javed.absar, krytarowski, atrick, spatel, RKSimon, andreadb, MatzeB, mehdi_amini, mgorny, efriedma, davide, dberlin, llvm-commits
Differential Revision: https://reviews.llvm.org/D32563
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304371
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 31 May 2017 23:02:55 +0000 (23:02 +0000)]
[docs] Update name of vectorization interleave flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304370
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 31 May 2017 22:35:52 +0000 (22:35 +0000)]
[EH] Recognize __(gxx|gcc)_personality_seh0 as the GNU EH personalities
These are no-ops when there are no invokes. We don't need to emit LSDAs
for them.
Fixes PR33220.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304367
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Wed, 31 May 2017 22:23:08 +0000 (22:23 +0000)]
ImplicitNullChecks: Clear kill/dead flags when moving instructions around
The values are marked as livein in the successor blocks so marking them
as killed or dead was wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304366
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 31 May 2017 22:21:20 +0000 (22:21 +0000)]
Check hasPersonalityFn before calling getPersonalityFn
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304365
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 31 May 2017 22:18:49 +0000 (22:18 +0000)]
[EH] Fix the LSDA that we emit for unknown EH personalities
We should have a single call site entry with no landing pad. This
indicates that no EH action should be taken and the unwinder should
unwind to the next frame.
We currently don't recognize __gxx_personality_seh0 as a known
personality, so we forcibly emit a table, and that table was wrong. This
was filed as PR33220. Now we emit a correct table for that personality.
The next step is to recognize that we can completely skip the table for
this personality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304363
91177308-0d34-0410-b5e6-
96231b3b80d8
Steven Wu [Wed, 31 May 2017 22:17:43 +0000 (22:17 +0000)]
[MachOObject] Fix bind opcode parser error on valid opcode sequence
BIND_OPCODE_SET_DYLIB_SPECIAL_IMM(0) is a valid way to setp library
ordinal. MachOObject should set LibraryOrdinalSet even when IMM is zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304362
91177308-0d34-0410-b5e6-
96231b3b80d8
Galina Kistanova [Wed, 31 May 2017 22:16:24 +0000 (22:16 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304361
91177308-0d34-0410-b5e6-
96231b3b80d8
Galina Kistanova [Wed, 31 May 2017 22:09:46 +0000 (22:09 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304358
91177308-0d34-0410-b5e6-
96231b3b80d8
Galina Kistanova [Wed, 31 May 2017 22:02:05 +0000 (22:02 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304356
91177308-0d34-0410-b5e6-
96231b3b80d8
Galina Kistanova [Wed, 31 May 2017 21:50:45 +0000 (21:50 +0000)]
Added LLVM_FALLTHROUGH to address warning: this statement may fall through. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304355
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Wed, 31 May 2017 21:47:52 +0000 (21:47 +0000)]
Avoid a UB pointer overflow in the ArrayRef unit test
The intent of the test is to check that array lengths greater than
UINT_MAX work properly. Change the test to stress that scenario, without
triggering pointer overflow UB.
Caught by a WIP pointer overflow checker in clang.
Differential Revision: https://reviews.llvm.org/D33149
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304353
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Wed, 31 May 2017 21:29:33 +0000 (21:29 +0000)]
Revert rL304050. It may break sanitizer bootstrap. Revert it for now while investigating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304350
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Wed, 31 May 2017 21:25:03 +0000 (21:25 +0000)]
Try to fix buildbots
It seems not all of our bots have a std::vector::erase() taking a
const_iterator (even though that seems to be part of C++11) attempt to
workaround.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304349
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 31 May 2017 21:12:46 +0000 (21:12 +0000)]
[TableGen] Adapt more places to getValueAsString now returning a StringRef instead of a std::string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304347
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Wed, 31 May 2017 20:30:22 +0000 (20:30 +0000)]
X86FloatingPoint: Fix livein lists
After transforming FP to ST registers:
- Do not add the ST register to the livein lists, they are reserved so
we do not need to track their liveness.
- Remove the FP registers from the livein lists, they don't have defs or
uses anymore and so are not live.
- (The setKillFlags() call is moved to an earlier place as it relies on
the FP registers still being present in the livein list.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304342
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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