OSDN Git Service
Jessica Paquette [Wed, 30 Jan 2019 22:54:21 +0000 (22:54 +0000)]
[GlobalISel][AArch64] Select G_FABS
This adds instruction selection support for G_FABS in AArch64. It also updates
the existing basic FP tests, adds a selection test for G_FABS.
https://reviews.llvm.org/D57418
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352684
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Wed, 30 Jan 2019 22:47:35 +0000 (22:47 +0000)]
[WebAssembly] MC: Use WritePatchableLEB helper function. NFC.
Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D57477
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352683
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Wed, 30 Jan 2019 22:44:45 +0000 (22:44 +0000)]
[WebAssembly] Restore stack pointer right after catch instruction
Summary:
After the staack is unwound due to a thrown exxception,
`__stack_pointer` global can point to an invalid address. So
a `global.set` to restore `__stack_pointer` should be inserted right
after `catch` instruction.
But after r352598 the `global.set` instruction is inserted not right
after `catch` but after `block` - `br-on-exn` - `end_block` -
`extract_exception` sequence. This CL fixes it.
While doing that, we can actually move ReplacePhysRegs pass after
LateEHPrepare and merge EHRestoreStackPointer pass into LateEHPrepare,
and now placing `global.set` to `__stack_pointer` right after `catch` is
much easier. Otherwise it is hard to guarantee that `global.set` is
still right after `catch` and not touched with other transformations, in
which case we have to do something to hoist it.
Reviewers: dschuff
Subscribers: mgorny, sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D57421
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352681
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 30 Jan 2019 22:41:35 +0000 (22:41 +0000)]
[DAGCombiner] sub X, 0/1 --> add X, 0/-1
This extends the existing transform for:
add X, 0/1 --> sub X, 0/-1
...to allow the sibling subtraction fold.
This pattern could regress with the proposed change in D57401.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352680
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 30 Jan 2019 21:58:20 +0000 (21:58 +0000)]
[AArch64][x86] add tests for add/sub signbits fold; NFC
As discussed/shown in D57401, we are missing a fold for
subtract of 0/1 --> add 0/-1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352678
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Wed, 30 Jan 2019 21:16:04 +0000 (21:16 +0000)]
[GlobalISel][AArch64] Add instruction selection support for @llvm.log2
This teaches GlobalISel to emit a RTLib call for @llvm.log2 when it encounters
it.
It updates the existing floating point tests to show that we don't fall back on
the intrinsic, and select the correct instructions. It also adds a legalizer
test for G_FLOG2.
https://reviews.llvm.org/D57357
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352673
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Wed, 30 Jan 2019 21:03:52 +0000 (21:03 +0000)]
[GlobalISel][AArch64] Add instruction selection support for @llvm.sqrt
This teaches the legalizer about G_FSQRT in AArch64. Also adds a legalizer
test for G_FSQRT, a selection test for it, and updates existing floating point
tests.
https://reviews.llvm.org/D57361
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352671
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Wed, 30 Jan 2019 20:58:14 +0000 (20:58 +0000)]
[GlobalISel] Add IRTranslator support for @llvm.sqrt -> G_FSQRT
Follow-up commit to https://reviews.llvm.org/D57359. (r352668)
This adds IRTranslator support for recognising a @llvm.sqrt intrinsic and
translating it into a G_FSQRT.
https://reviews.llvm.org/D57360
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352670
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Wed, 30 Jan 2019 20:49:50 +0000 (20:49 +0000)]
[GlobalISel] Introduce a G_FSQRT generic instruction
This introduces a generic instruction for computing the floating point
square root of a value.
Right now, we can't select @llvm.sqrt, so this is working towards fixing that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352668
91177308-0d34-0410-b5e6-
96231b3b80d8
Wolfgang Pieb [Wed, 30 Jan 2019 20:37:14 +0000 (20:37 +0000)]
Reverting r352642 - Handle restore instructions in LiveDebugValues - as it's causing
assertions on some buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352666
91177308-0d34-0410-b5e6-
96231b3b80d8
Erik Pilkington [Wed, 30 Jan 2019 20:34:35 +0000 (20:34 +0000)]
Add a 'dynamic' parameter to the objectsize intrinsic
This is meant to be used with clang's __builtin_dynamic_object_size.
When 'true' is passed to this parameter, the intrinsic has the
potential to be folded into instructions that will be evaluated
at run time. When 'false', the objectsize intrinsic behaviour is
unchanged.
rdar://
32212419
Differential revision: https://reviews.llvm.org/D56761
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352664
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Wed, 30 Jan 2019 20:06:24 +0000 (20:06 +0000)]
[Tests] Add tests for propagation of undef elements in vector GEPs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352662
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 30 Jan 2019 19:57:01 +0000 (19:57 +0000)]
[X86] Mark EMMS and FEMMS as clobbering MM0-7 and ST0-7.
This fixes the test case in PR35982 by preventing MMX instructions that read MM0-7 from being moved below EMMS/FEMMS by the post RA scheduler.
Though as discussed in bugzilla, this is not a complete fix. There is still the possibility of reordering in IR or by the pre-RA scheduler.
Differential Revision: https://reviews.llvm.org/D57298
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352660
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 30 Jan 2019 19:53:58 +0000 (19:53 +0000)]
gn build: Set executable bit on get.py
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352659
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Wed, 30 Jan 2019 19:21:11 +0000 (19:21 +0000)]
SimplifyDemandedVectorElts for all intrinsics
The point is that this simplifies integration of new intrinsics into SimplifiedDemandedVectorElts, and ensures we don't miss any existing ones.
This is intended to be NFC-ish, but as seen from the diffs, can produce slightly different output. This is due to order of transforms w/in instcombine resulting in two slightly different fixed points. That's something we should fix, but isn't a problem w/this patch per se.
Differential Revision: https://reviews.llvm.org/D57398
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352653
91177308-0d34-0410-b5e6-
96231b3b80d8
Wolfgang Pieb [Wed, 30 Jan 2019 19:15:43 +0000 (19:15 +0000)]
The test comitted with r348896 needed -march=x86=64 on the llc command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352651
91177308-0d34-0410-b5e6-
96231b3b80d8
Yonghong Song [Wed, 30 Jan 2019 19:13:16 +0000 (19:13 +0000)]
Revert "gn build: Add BPF target."
This reverts commit r352638.
The change in this patch is not trivial and it is merged
without component owner approval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352649
91177308-0d34-0410-b5e6-
96231b3b80d8
Wolfgang Pieb [Wed, 30 Jan 2019 18:34:07 +0000 (18:34 +0000)]
[DEBUGINFO] Handle restore instructions in LiveDebugValues
The LiveDebugValues pass recognizes spills but not restores, which can
cause large gaps in location information for some variables, depending
on control flow. This patch make LiveDebugValues recognize restores and
generate appropriate DBG_VALUE instructions.
Reviewers: aprantl, NicolaPrica
Differential Revision: https://reviews.llvm.org/D57271
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352642
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rupprecht [Wed, 30 Jan 2019 18:13:30 +0000 (18:13 +0000)]
[llvm-objcopy][NFC] More error propagation (linkToBuildIdDir)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352640
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Wed, 30 Jan 2019 18:04:08 +0000 (18:04 +0000)]
gn build: Add BPF target.
Differential Revision: https://reviews.llvm.org/D57436
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352638
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 17:52:25 +0000 (17:52 +0000)]
GlobalISel: Add simpler way of always specifying custom lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352637
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 17:52:23 +0000 (17:52 +0000)]
GlobalISel: Add assert that legalize mutation makes sense
I've repeatedly encountered bugs resulting from custom legalize
mutations returning nonsense legalize results, such as increasing the
number of elements for FewerElements. Add an assert function to make
sure the type to mutate to is consistent with the legalize action.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352636
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 17:25:37 +0000 (17:25 +0000)]
AMDGPU: Stop generating unused intrinsic .inc files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352635
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 30 Jan 2019 16:19:19 +0000 (16:19 +0000)]
[X86][AVX] Prefer to combine shuffle to broadcasts whenever possible
This is the first step towards improving broadcast support on AVX1 targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352634
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 30 Jan 2019 16:15:59 +0000 (16:15 +0000)]
[utils] Fix update scripts output when run on python3.
This fixes a "bytes-like object is required, not 'str'" python3 error I hit on update_llc_test_checks.py (but present on the other scripts as well) by matching what update_mca_test_checks.py already does, plus I've added an explicit 'utf-8' encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352633
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Wed, 30 Jan 2019 16:02:20 +0000 (16:02 +0000)]
[llvm-exegesis] Add throughput mode.
Summary:
This just uses the latency benchmark runner on the parallel uops snippet
generator.
Fixes PR37698.
Reviewers: gchatelet
Subscribers: tschuett, RKSimon, llvm-commits
Differential Revision: https://reviews.llvm.org/D57000
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352632
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Wed, 30 Jan 2019 15:39:05 +0000 (15:39 +0000)]
[llvm-readobj] - Few minor cleanups. NFC.
Minor code simplifications, relocations,
renamings (to match LLVM style).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352630
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefan Granitz [Wed, 30 Jan 2019 15:10:08 +0000 (15:10 +0000)]
[CMake] Accept ENTITLEMENTS in llvm_add_library()
Summary: We added support for code signing entitlements in add_llvm_executable() with D54443. In the future it would be useful to have this functionality available also for libraries.
Reviewers: beanz, bogner
Reviewed By: bogner
Subscribers: mgorny, llvm-commits, lldb-commits, #lldb
Differential Revision: https://reviews.llvm.org/D57334
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352628
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 30 Jan 2019 15:07:49 +0000 (15:07 +0000)]
[InstCombine][x86] add tests for addcarry intrinsic; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352627
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rupprecht [Wed, 30 Jan 2019 14:58:13 +0000 (14:58 +0000)]
[llvm-objcopy] Support -X|--discard-locals.
Summary:
This adds support for the --discard-locals flag, which acts similarly to --discard-all, except it only applies to compiler-generated symbols (i.e. symbols starting with `.L` in ELF).
I am not sure about COFF local symbols: those appear to also use `.L` in most cases, but also use just `L` in other cases, so for now I am just leaving it unimplemented there.
Fixes PR36160
Reviewers: jhenderson, alexshap, jakehehrlich, mstorsjo, espindola
Reviewed By: jhenderson
Subscribers: llvm-commits, emaste, arichardson
Differential Revision: https://reviews.llvm.org/D57248
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352626
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rupprecht [Wed, 30 Jan 2019 14:36:53 +0000 (14:36 +0000)]
[llvm-objcopy][NFC] More error propagation
Summary: Do some more error cleanup, removing some dependencies from llvm-objcopy's error/reportError in [ELF/COFF]Objcopy methods.
Reviewers: jhenderson, alexshap, jakehehrlich, mstorsjo, espindola
Subscribers: emaste, arichardson
Differential Revision: https://reviews.llvm.org/D57423
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352625
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Wed, 30 Jan 2019 14:08:55 +0000 (14:08 +0000)]
[llvm-readobj] - Simplify the code.
We have a Field struct which has a StringRef member Str.
The code needs to create and keep alive the temporarily
std::string variables because of that.
That is not convenient and makes the code be more complicated
than it could be.
There seems to be no reason to keep Str be StringRef.
The patch changes it to be std::string and
rearranges the code around slightly.
Differential revision: https://reviews.llvm.org/D57447
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352623
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Wed, 30 Jan 2019 12:32:19 +0000 (12:32 +0000)]
Properly use DT.verify in LoopSimplifyCFG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352621
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Wed, 30 Jan 2019 11:25:12 +0000 (11:25 +0000)]
Enable IRCE for narrow latch by defailt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352619
91177308-0d34-0410-b5e6-
96231b3b80d8
Shiva Chen [Wed, 30 Jan 2019 11:16:59 +0000 (11:16 +0000)]
[RISCV] Insert R_RISCV_ALIGN relocation type and Nops for code alignment when linker relaxation enabled
Linker relaxation may change code size. We need to fix up the alignment
of alignment directive in text section by inserting Nops and R_RISCV_ALIGN
relocation type. So then linker could satisfy the alignment by removing Nops.
To do this:
1. Add shouldInsertExtraNopBytesForCodeAlign target hook to calculate
the Nops we need to insert.
2. Add shouldInsertFixupForCodeAlign target hook to insert
R_RISCV_ALIGN fixup type.
Differential Revision: https://reviews.llvm.org/D47755
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352616
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandr Urakov [Wed, 30 Jan 2019 10:40:45 +0000 (10:40 +0000)]
[NativePDB] Fix access to both old & new fpo data entries from dbi stream
Summary:
This patch fixes access to fpo streams in native pdb from DbiStream and makes
code consistent with DbiStreamBuilder.
Patch By: leonid.mashinskiy
Reviewers: zturner, aleksandr.urakov
Reviewed By: zturner
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D56725
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352615
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Yung [Wed, 30 Jan 2019 09:49:39 +0000 (09:49 +0000)]
Add lit config file to skip tests if WebAssembly target is not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352614
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Venikov [Wed, 30 Jan 2019 09:49:25 +0000 (09:49 +0000)]
Commit tests for changes in revision D41342
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352613
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 30 Jan 2019 08:04:06 +0000 (08:04 +0000)]
[X86] Remove unnecessary code from the top of handleCompareFP in X86FloatingPoint.cpp.
There were checks to ensure some tables were sorted, but those tables aren't used by this function. The same tables are checked in the function that does use them. Maybe this was copy/pasted?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352609
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 30 Jan 2019 07:33:24 +0000 (07:33 +0000)]
[X86] Remove a couple places where we unnecessarily pass 0 to the EmitPriority of some FP instruction aliases. NFC
As far as I can tell we already won't emit these aliases due to an operand count check in the tablegen code. Removing these because I couldn't make sense of the inconsistency between fadd and fmul from reading the code.
I checked the AsmMatcher and AsmWriter files before and after this change and there were no differences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352608
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 30 Jan 2019 07:08:44 +0000 (07:08 +0000)]
[X86] Add FPSW as a Def on some FP instructions that were missing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352607
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Inoue [Wed, 30 Jan 2019 05:26:31 +0000 (05:26 +0000)]
[NFC] fix trivial typos in comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352602
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 04:19:31 +0000 (04:19 +0000)]
GlobalISel: Implement fewerElementsVector for select
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352601
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 30 Jan 2019 03:43:41 +0000 (03:43 +0000)]
[IR] Use CallBase to simplify some code
Summary:
This patch does the following to simplify the asm-goto patch
-Move isInlineAsm from CallInst to CallBase to share with CallBrInst in the asm-goto patch.
-Forward CallSite's data_operands_begin()/data_operands_end() to CallBase's implementation.
-Forward CallSite's getOperandBundlesAsDefs to CallBase.
Reviewers: chandlerc
Reviewed By: chandlerc
Subscribers: nickdesaulniers, llvm-commits
Differential Revision: https://reviews.llvm.org/D57415
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352600
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 03:36:25 +0000 (03:36 +0000)]
AMDGPU/GlobalISel: Fix clamping shifts with 16-bit insts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352599
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Wed, 30 Jan 2019 03:21:57 +0000 (03:21 +0000)]
[WebAssembly] Exception handling: Switch to the new proposal
Summary:
This switches the EH implementation to the new proposal:
https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md
(The previous proposal was
https://github.com/WebAssembly/exception-handling/blob/master/proposals/old/Exceptions.md)
- Instruction changes
- Now we have one single `catch` instruction that returns a except_ref
value
- `throw` now can take variable number of operations
- `rethrow` does not have 'depth' argument anymore
- `br_on_exn` queries an except_ref to see if it matches the tag and
branches to the given label if true.
- `extract_exception` is a pseudo instruction that simulates popping
values from wasm stack. This is to make `br_on_exn`, a very special
instruction, work: `br_on_exn` puts values onto the stack only if it
is taken, and the # of values can vay depending on the tag.
- Now there's only one `catch` per `try`, this patch removes all special
handling for terminate pad with a call to `__clang_call_terminate`.
Before it was the only case there are two catch clauses (a normal
`catch` and `catch_all` per `try`).
- Make `rethrow` act as a terminator like `throw`. This splits BB after
`rethrow` in WasmEHPrepare, and deletes an unnecessary `unreachable`
after `rethrow` in LateEHPrepare.
- Now we stop at all catchpads (because we add wasm `catch` instruction
that catches all exceptions), this creates new
`findWasmUnwindDestinations` function in SelectionDAGBuilder.
- Now we use `br_on_exn` instrution to figure out if an except_ref
matches the current tag or not, LateEHPrepare generates this sequence
for catch pads:
```
catch
block i32
br_on_exn $__cpp_exception
end_block
extract_exception
```
- Branch analysis for `br_on_exn` in WebAssemblyInstrInfo
- Other various misc. changes to switch to the new proposal.
Reviewers: dschuff
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D57134
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352598
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 02:57:43 +0000 (02:57 +0000)]
GlobalISel: Use appropriate extension for legalizing select conditions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352597
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Wed, 30 Jan 2019 02:56:22 +0000 (02:56 +0000)]
[PowerPC] [NFC] Create a helper function to copy register to particular register class at PPCFastISel
Make copy register code as common function as following.
unsigned copyRegToRegClass(const TargetRegisterClass *ToRC, unsigned SrcReg, unsigned Flag = 0, unsigned SubReg = 0);
Differential Revision: https://reviews.llvm.org/D57368
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352596
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 02:35:38 +0000 (02:35 +0000)]
GlobalISel: Support narrowScalar for uneven loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352594
91177308-0d34-0410-b5e6-
96231b3b80d8
Thomas Lively [Wed, 30 Jan 2019 02:23:29 +0000 (02:23 +0000)]
[WebAssembly] Optimize BUILD_VECTOR lowering for size
Summary:
Implements custom lowering logic that finds the optimal value for the
initial splat of the vector and either uses it or uses v128.const if
it is available and if it would produce smaller code. This logic
replaces large TableGen ISEL patterns that would lower all non-splat
BUILD_VECTORs into a splat followed by a fixed number of replace_lane
instructions. This CL fixes PR39685.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D56633
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352592
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 02:22:13 +0000 (02:22 +0000)]
GlobalISel: Handle some odd splits in fewerElementsVector
Also add some quick hacks to AMDGPU legality for the tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352591
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Wed, 30 Jan 2019 02:08:34 +0000 (02:08 +0000)]
Add enum values to CodeGenOpt::Level
The absolute values of this enum are important at least in that
they get printed by SelectionDAGISel. e.g:
`Before: -O2 ; After: -O0`
Differential Revision: https://reviews.llvm.org/D57430
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352587
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 02:04:31 +0000 (02:04 +0000)]
GlobalISel: Handle more cases for widenScalar for G_STORE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352585
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Wed, 30 Jan 2019 01:57:01 +0000 (01:57 +0000)]
[PowerPC] more opportunity for converting reg+reg to reg+imm
Differential Revision: https://reviews.llvm.org/D57314
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352583
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 01:10:47 +0000 (01:10 +0000)]
Add 8.0 release bug to merge request script
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352579
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 30 Jan 2019 01:10:42 +0000 (01:10 +0000)]
GlobalISel: Verify memory size for load/store
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352578
91177308-0d34-0410-b5e6-
96231b3b80d8
George Burgess IV [Wed, 30 Jan 2019 00:28:56 +0000 (00:28 +0000)]
Remove a redundant space from an error message; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352576
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Wed, 30 Jan 2019 00:15:48 +0000 (00:15 +0000)]
[WebAssembly] Add missing SymbolRef update from rL352551
This change broke some MC tests which are now fixed.
Differential Revision: https://reviews.llvm.org/D57424
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352573
91177308-0d34-0410-b5e6-
96231b3b80d8
Thomas Lively [Tue, 29 Jan 2019 23:44:48 +0000 (23:44 +0000)]
[WebAssembly] Lower SCALAR_TO_VECTOR to splats
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish
Differential Revision: https://reviews.llvm.org/D57269
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352568
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 29 Jan 2019 23:38:42 +0000 (23:38 +0000)]
GlobalISel: Fix unused variable warning in release builds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352565
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 29 Jan 2019 23:31:54 +0000 (23:31 +0000)]
[IR] Use CallBase to reduce code duplication. NFC
Noticed in the asm-goto patch. Callbr needs to go here too. One cast and call is better than 3.
Differential Revision: https://reviews.llvm.org/D57295
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352563
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 29 Jan 2019 23:29:00 +0000 (23:29 +0000)]
GlobalISel: Verify pointer casts
Not sure if the old AArch64 tests should be just
deleted or not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352562
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 29 Jan 2019 23:17:35 +0000 (23:17 +0000)]
GlobalISel: Partially implement widenScalar for MERGE_VALUES
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352560
91177308-0d34-0410-b5e6-
96231b3b80d8
Alina Sbirlea [Tue, 29 Jan 2019 22:33:20 +0000 (22:33 +0000)]
Check bool attribute value in getOptionalBoolLoopAttribute.
Summary:
Check the bool value of the attribute in getOptionalBoolLoopAttribute
not just its existance.
Eliminates the warning noise generated when vectorization is explicitly disabled.
Reviewers: Meinersbur, hfinkel, dmgreen
Subscribers: jlebar, sanjoy, llvm-commits
Differential Revision: https://reviews.llvm.org/D57260
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352555
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Clegg [Tue, 29 Jan 2019 22:22:32 +0000 (22:22 +0000)]
[WebAssembly] Ensure BasicSymbolRef.getRawDataRefImpl().p is non-null
Store a non-zero value to ref.d.a and use ref.d.b to store the symbol
index. This means that ref.p is never null, which was confusing
llvm-nm.
Fixes PR40497
Differential Revision: https://reviews.llvm.org/D57373
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352551
91177308-0d34-0410-b5e6-
96231b3b80d8
Shoaib Meenai [Tue, 29 Jan 2019 22:17:51 +0000 (22:17 +0000)]
[docs] Prevent O0 optnone for opt input
If we just compile with -O0, clang will add optnone attributes
everywhere, so opt won't actually be able to perform any passes.
Instruct clang to not emit the optnone so opt can do its thing.
Differential Revision: https://reviews.llvm.org/D56950
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352550
91177308-0d34-0410-b5e6-
96231b3b80d8
Amara Emerson [Tue, 29 Jan 2019 21:19:33 +0000 (21:19 +0000)]
[AArch64][GlobalISel] Unmerge into scalars from a vector should use FPR bank.
This currently shows up as a selection fallback since the dest regs were given
GPR banks but the source was a vector FPR reg.
Differential Revision: https://reviews.llvm.org/D57408
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352545
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 29 Jan 2019 20:53:51 +0000 (20:53 +0000)]
[DWARF] Emit reasonable debug info for empty .s files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352541
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 29 Jan 2019 20:02:45 +0000 (20:02 +0000)]
[InstCombine] canonicalize cmp/select form of uadd saturate with constant
I'm circling back around to a loose end from D51929.
The backend (either CGP or DAG) doesn't recognize this pattern, so we end up with different asm for these IR variants.
Regardless of any future changes to canonicalize to saturation/overflow intrinsics, we want to get raw IR variations
into the minimal number of raw IR forms. If/when we can canonicalize to intrinsics, that will make that step easier.
Pre: C2 == ~C1
%a = add i32 %x, C1
%c = icmp ugt i32 %x, C2
%r = select i1 %c, i32 -1, i32 %a
=>
%a = add i32 %x, C1
%c2 = icmp ult i32 %x, C2
%r = select i1 %c2, i32 %a, i32 -1
https://rise4fun.com/Alive/pkH
Differential Revision: https://reviews.llvm.org/D57352
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352536
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 29 Jan 2019 19:13:39 +0000 (19:13 +0000)]
[DAGCombiner] fold extract_subvector of extract_subvector
This is the sibling fold for insert-of-insert that was added with D56604.
Now that we have x86 shuffle narrowing (D57156), this change shows improvements for
lots of AVX512 reduction code (not sure that we would ever expect extract-of-extract otherwise).
There's a small regression in some of the partial-permute tests (extracting followed by splat).
That is tracked by PR40500:
https://bugs.llvm.org/show_bug.cgi?id=40500
Differential Revision: https://reviews.llvm.org/D57336
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352528
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Tue, 29 Jan 2019 19:07:15 +0000 (19:07 +0000)]
[VFS] Fix warning and use better check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352527
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 29 Jan 2019 18:13:02 +0000 (18:13 +0000)]
GlobalISel: Fix narrowScalar for load/store with different mem size
This was ignoring the memory size, and producing multiple loads/stores
if the operand size was different from the memory size.
I assume this is the intent of not having an explicit G_ANYEXTLOAD
(although I think that would probably be better).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352523
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 29 Jan 2019 17:00:47 +0000 (17:00 +0000)]
[x86] add tests for vector bool math; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352520
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 29 Jan 2019 17:00:07 +0000 (17:00 +0000)]
[AArch64] add tests for vector bool math; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352519
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Tue, 29 Jan 2019 16:47:27 +0000 (16:47 +0000)]
[X86][Btver2] Improved latency/throughput model for scalar int-to-float conversions.
Account for bypass delays when computing the latency of scalar int-to-float
conversions.
On Jaguar we need to account for an extra 6cy latency (see AMD fam16h SOG).
This patch also fixes the number of micropcodes for the register-memory variants
of scalar int-to-float conversions.
Differential Revision: https://reviews.llvm.org/D57148
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352518
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 29 Jan 2019 16:44:05 +0000 (16:44 +0000)]
[InstCombine] regenerate test checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352517
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 29 Jan 2019 16:39:23 +0000 (16:39 +0000)]
[InstCombine] add tests for ext-of-bool + add/sub; NFC
We should choose one of these as canonical:
%z = zext i1 %cmp to i32
%r = sub i32 %x, %z
=>
%s = sext i1 %cmp to i32
%r = add i32 %x, %s
The test comments assume that the zext form is better,
but we can adjust that if we decide to go the other way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352515
91177308-0d34-0410-b5e6-
96231b3b80d8
James Y Knight [Tue, 29 Jan 2019 16:37:27 +0000 (16:37 +0000)]
Adjust documentation for git migration.
This fixes most references to the paths:
llvm.org/svn/
llvm.org/git/
llvm.org/viewvc/
github.com/llvm-mirror/
github.com/llvm-project/
reviews.llvm.org/diffusion/
to instead point to https://github.com/llvm/llvm-project.
This is *not* a trivial substitution, because additionally, all the
checkout instructions had to be migrated to instruct users on how to
use the monorepo layout, setting LLVM_ENABLE_PROJECTS instead of
checking out various projects into various subdirectories.
I've attempted to not change any scripts here, only documentation. The
scripts will have to be addressed separately.
Additionally, I've deleted one document which appeared to be outdated
and unneeded:
lldb/docs/building-with-debug-llvm.txt
Differential Revision: https://reviews.llvm.org/D57330
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352514
91177308-0d34-0410-b5e6-
96231b3b80d8
Nirav Dave [Tue, 29 Jan 2019 15:14:07 +0000 (15:14 +0000)]
[SelectionDAGBuilder] Remove redundant variable. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352506
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rupprecht [Tue, 29 Jan 2019 15:05:38 +0000 (15:05 +0000)]
[llvm-objcopy] Implement --set-section-flags.
Summary:
--set-section-flags is used to change the section flags (e.g. SHF_ALLOC) for given sections. The flags allowed are the same from the existing --rename-section=.old=.new[,flags] feature.
Additionally, make sure that --set-section-flag cannot be used with --rename-section (either the source or destination), since --rename-section accepts flags. This avoids ambiguity for something like "--rename-section=.foo=.bar,alloc --set-section-flag=.bar,code".
Reviewers: jhenderson, jakehehrlich, alexshap, espindola
Reviewed By: jhenderson, jakehehrlich
Subscribers: llvm-commits, emaste, arichardson
Differential Revision: https://reviews.llvm.org/D57198
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352505
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayonam Ray [Tue, 29 Jan 2019 15:00:50 +0000 (15:00 +0000)]
Reversing the checkin for version 352484 as tests are failing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352504
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 29 Jan 2019 14:39:54 +0000 (14:39 +0000)]
gn build: Merge r352444, r352431, r352430
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352502
91177308-0d34-0410-b5e6-
96231b3b80d8
Neil Henning [Tue, 29 Jan 2019 14:28:17 +0000 (14:28 +0000)]
[AMDGPU] Fix a weird WWM intrinsic issue.
I found a really strange WWM issue through a very convoluted shader that
essentially boils down to a bug in SIInstrInfo where canReadVGPR did not
correctly identify that WWM is like a copy and can have a VGPR as its
source.
Differential Revision: https://reviews.llvm.org/D56002
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352500
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 29 Jan 2019 13:43:22 +0000 (13:43 +0000)]
Revert r351833 and r352250.
They were breaking the Windows build when using MSBuild, see the
discussion on D56781.
r351833: "Use response file when generating LLVM-C.dll"
> Use response file when generating LLVM-C.dll
>
> As discovered in D56774 the command line gets to long, so use a response file to give the script the libs. This change has been tested and is confirmed working for me.
>
> Commited on behalf of Jakob Bornecrantz
>
> Differential Revision: https://reviews.llvm.org/D56781
r352250: "Build LLVM-C.dll by default on windows and enable in release package"
> Build LLVM-C.dll by default on windows and enable in release package
>
> With the fixes to the building of LLVM-C.dll in D56781 this should now
> be safe to land. This will greatly simplify dealing with LLVM for people
> that just want to use the C API on windows. This is a follow up from
> D35077.
>
> Patch by Jakob Bornecrantz!
>
> Differential revision: https://reviews.llvm.org/D56774
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352492
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayonam Ray [Tue, 29 Jan 2019 12:01:32 +0000 (12:01 +0000)]
[CodeGen] Omit range checks from jump tables when lowering switches with unreachable default
During the lowering of a switch that would result in the generation of a
jump table, a range check is performed before indexing into the jump
table, for the switch value being outside the jump table range and a
conditional branch is inserted to jump to the default block. In case the
default block is unreachable, this conditional jump can be omitted. This
patch implements omitting this conditional branch for unreachable
defaults.
Review ID: D52002
Reviewers: Hans Wennborg, Eli Freidman, Roman Lebedev
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352484
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 29 Jan 2019 10:58:42 +0000 (10:58 +0000)]
[X86] Add PR40483 test case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352480
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 29 Jan 2019 10:53:42 +0000 (10:53 +0000)]
[WebAssembly] Re-enable main-function signature rewriting
Re-enable the code to rewrite main-function signatures into
"int main(int argc, char *argv[])", but limited to only handling
the case of "int main(void)", so that it doesn't silently strip
an argument in the "int main(int argc, char *argv[], char *envp[])"
case.
This allows main to be called by C startup code, since WebAssembly
requires caller and callee signatures to match, so it can't rely
on passing main a different number of arguments than it expects.
Differential Revision: https://reviews.llvm.org/D57323
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352479
91177308-0d34-0410-b5e6-
96231b3b80d8
James Henderson [Tue, 29 Jan 2019 10:43:48 +0000 (10:43 +0000)]
[llvm-symbolizer][doc] Tweak wording of --adjust-vma switch description
The address isn't dynamically relocated. The object is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352477
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 29 Jan 2019 10:41:48 +0000 (10:41 +0000)]
[X86] Fix linux32 pic tests to use correct relocation model (PR39684)
Differential Revision: https://reviews.llvm.org/D57301
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352476
91177308-0d34-0410-b5e6-
96231b3b80d8
David Green [Tue, 29 Jan 2019 10:40:31 +0000 (10:40 +0000)]
[ARM] Use sub for negative offset load/store in thumb1
This attempts to optimise negative values used in load/store operands
a little. We currently try to selct them as rr, materialising the
negative constant using a MOV/MVN pair. This instead selects ri with
an immediate of 0, forcing the add node to become a simpler sub.
Differential Revision: https://reviews.llvm.org/D57121
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352475
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 29 Jan 2019 10:39:02 +0000 (10:39 +0000)]
[X86] Regenerate abi-isel.ll test
Adds note requested in D57301 and fixes some missing GOTPCREL addressmath checks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352474
91177308-0d34-0410-b5e6-
96231b3b80d8
David Green [Tue, 29 Jan 2019 10:25:56 +0000 (10:25 +0000)]
[ARM] Add extra testcases for D57121. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352472
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeremy Morse [Tue, 29 Jan 2019 10:23:43 +0000 (10:23 +0000)]
Remove 'XFAIL: powerpc64' from a debuginfo test
This test started XPASSing with r352467, and the change in behaviour
performed by that patch does appear to fix the cause of the original XFAIL
(missing FrameIndex DBG_VALUE), which I've replicated locally with
-mtriple=powerpc64--.
I'll write this up in PR21881 which documents the XFAIL, and seek
confirmation I haven't overlooked something here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352471
91177308-0d34-0410-b5e6-
96231b3b80d8
Bjorn Pettersson [Tue, 29 Jan 2019 10:19:44 +0000 (10:19 +0000)]
[IPCP] Don't crash due to arg count/type mismatch between caller/callee
Summary:
This patch avoids an assert in IPConstantPropagation when
there is a argument count/type mismatch between the caller and
the callee.
While this is actually UB on C-level (clang emits a warning),
the IR verifier seems to accept it. I'm not sure what other
frontends/languages might think about this, so simply bailing out
to avoid hitting an assert (in CallSiteBase<>::getArgOperand or
Value::doRAUW) seems like a simple solution.
The problem is exposed by the fact that AbstractCallSites will look
through a bitcast at the callee position of a call/invoke.
Reviewers: jdoerfert, reames, efriedma
Reviewed By: jdoerfert, efriedma
Subscribers: eli.friedman, efriedma, llvm-commits
Differential Revision: https://reviews.llvm.org/D57052
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352469
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeremy Morse [Tue, 29 Jan 2019 09:40:05 +0000 (09:40 +0000)]
[DebugInfo][DAG] Process FrameIndex dbg.values unconditionally
A FrameIndex should be valid throughout a block regardless of what instructions
get selected in that block -- therefore we shouldn't harness dbg.values that
refer to FrameIndexes to an SDNode. There are numerous codegen reasons why
an SDNode never appears or doesn't become a location that a DBG_VALUE can
refer to. None of them actually affect the variable location.
Therefore, before any other tests to encode dbg_values in a SelectionDAG,
identify FrameIndex operands and encode them unattached to any SDNode.
Differential Revision: https://reviews.llvm.org/D57328
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352467
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Tue, 29 Jan 2019 09:39:15 +0000 (09:39 +0000)]
[NFC] Use ArrayRef instead of SmallVectorImpl where possible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352466
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Tue, 29 Jan 2019 09:36:48 +0000 (09:36 +0000)]
[COFF, ARM64] Don't put jump table into a separate COFF section for EK_LabelDifference32
Windows ARM64 has PIC relocation model and uses jump table kind
EK_LabelDifference32. This produces jump table entry as
".word LBB123 - LJTI1_2" which represents the distance between the block
and jump table.
A new relocation type (IMAGE_REL_ARM64_REL32) is needed to do the fixup
correctly if they are in different COFF section.
This change saves the jump table to the same COFF section as the
associated code. An ideal fix could be utilizing IMAGE_REL_ARM64_REL32
relocation type.
Patch by Tom Tan!
Differential Revision: https://reviews.llvm.org/D57277
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352465
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Tue, 29 Jan 2019 09:03:35 +0000 (09:03 +0000)]
[CodeGenPrepare] Handle all debug calls in dupRetToEnableTailCallOpts()
This patch makes sure that a debug value that is after the bitcast in
dupRetToEnableTailCallOpts() is also skipped.
The reduced test case is from SPEC-2006 on SystemZ.
Review: Vedant Kumar, Wolfgang Pieb
https://reviews.llvm.org/D57050
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352462
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeremy Morse [Tue, 29 Jan 2019 08:41:44 +0000 (08:41 +0000)]
Fix an incorrectly configured test.
This should have had a target triple in it, my mistake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352460
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikael Holmen [Tue, 29 Jan 2019 06:51:28 +0000 (06:51 +0000)]
Fix compiler warning when using clang 3.6.0
Without the fix we get the following (with -Werror):
../lib/Target/X86/X86ISelLowering.cpp:14181:58: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
SmallVector<std::array<int, 2>, 2> LaneSrcs(NumLanes, {-1, -1});
^~~~~~
{ }
1 error generated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352455
91177308-0d34-0410-b5e6-
96231b3b80d8