| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
MachO files using the GDB JIT debugging interface.
Patch by Keno Fischer. Thanks Keno!
llvm-svn: 211652
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 211651
|
| |
|
|
|
|
|
| |
All the "real" streamers were already calling to MCStreamer::EmitLabel
to do part of the work.
llvm-svn: 211646
|
| |
|
|
|
|
|
| |
Optimize the codegen of select and branch instructions to directly use the
EFLAGS from the {s|u}{add|sub|mul}.with.overflow intrinsics.
llvm-svn: 211645
|
| |
|
|
|
|
|
|
| |
Now that non-leaf ComplexPatterns are allowed we can fold all the MUBUF
store patterns into the instruction definition. We will also be able to
reuse this new ComplexPattern for MUBUF loads and atomic operations.
llvm-svn: 211644
|
| |
|
|
|
|
| |
Now we need only one 64-bit pattern for stores.
llvm-svn: 211643
|
| |
|
|
|
|
|
|
|
|
|
| |
In assembly the expression a=b is parsed as an assignment, so it should be
printed as one.
This remove a truly horrible hack for producing a label with "a=.". It would
be used by codegen but would never be reached by the asm parser. Sorry I
missed this when it was first committed.
llvm-svn: 211639
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
R600 was using a clamped version of rsq, but SI was not. Add a
new rsq_clamped intrinsic and use them consistently.
It's unclear to me from the documentation what behavior
the R600 instructions have, so I assume they have the legacy behavior
described by the SI documents. For R600, use RECIPSQRT_IEEE
for both llvm.AMDGPU.rsq.legacy and llvm.AMDGPU.rsq. R600 also
has RECIPSQRT_FF, which I'm not sure how it fits in here.
llvm-svn: 211637
|
| |
|
|
| |
llvm-svn: 211634
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR20071 identifies a problem in PowerPC's fast-isel implementation for
floating-point conversion to integer. The fctiduz instruction was added in
Power ISA 2.06 (i.e., Power7 and later). However, this instruction is being
generated regardless of which 64-bit PowerPC target is selected.
The intent is for fast-isel to punt to DAG selection when this instruction is
not available. This patch implements that change. For testing purposes, the
existing fast-isel-conversion.ll test adds a RUN line for -mcpu=970 and tests
for the expected code generation. Additionally, the existing test
fast-isel-conversion-p5.ll was found to be incorrectly expecting the
unavailable instruction to be generated. I've removed these test variants
since we have adequate coverage in fast-isel-conversion.ll.
llvm-svn: 211627
|
| |
|
|
|
|
|
|
|
|
| |
between them
Fix PR20088
Differential Revision: http://reviews.llvm.org/D4277
llvm-svn: 211617
|
| |
|
|
|
|
|
| |
This corresponded to an amdil instruction which there is
a 2 instruction equivalent for.
llvm-svn: 211616
|
| |
|
|
| |
llvm-svn: 211614
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This new debug emission kind supports emitting line location
information in all instructions, but stops code generation
from emitting debug info to the final output.
This mode is useful when the backend wants to track source
locations during code generation, but it does not want to
produce debug info. This is currently used by optimization
remarks (-pass-remarks, -pass-remarks-missed and
-pass-remarks-analysis).
To prevent debug info emission, DIBuilder never inserts the
annotation 'llvm.dbg.cu' when LocTrackingOnly is enabled.
Reviewers: echristo, dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D4234
llvm-svn: 211609
|
| |
|
|
|
|
|
| |
"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64"
Missed files are added in this commit.
llvm-svn: 211605
|
| |
|
|
|
|
|
| |
Use a StringRef to hold our section prefix. This avoids multiple calls
to strlen.
llvm-svn: 211602
|
| |
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D4230
llvm-svn: 211601
|
| |
|
|
| |
llvm-svn: 211597
|
| |
|
|
|
|
|
| |
Once the objects are constructed, they own the buffer. Passing a unique_ptr
makes that clear.
llvm-svn: 211595
|
| |
|
|
|
|
|
|
|
|
|
|
| |
in Unix Memory::InvalidateInstructionCache()
Buildbot reports a test failure on the llvm-mips-linux builder and blames r211588.
Although it doesn't appear in the blamelist, it seems it could also be r211587
(because it's committed to compiler-rt?) since they were tested together.
Reverting the most likely suspect (r211588) to confirm one way or the other.
llvm-svn: 211594
|
| |
|
|
|
|
| |
libclang still requires it on cygming, lack of incomplete <mutex>.
llvm-svn: 211592
|
| |
|
|
|
|
|
|
|
|
| |
Summary:
This instruction is re-encoded in MIPS32r6/MIPS64r6 without changing the
restrictions. We hadn't implemented it for earlier ISA's so it has been added to those too.
Differential Revision: http://reviews.llvm.org/D4265
llvm-svn: 211590
|
| |
|
|
|
|
|
|
|
|
| |
Memory::InvalidateInstructionCache()
MIPS64 Android bionic has removed cacheflush(). Use __clear_cache() instead for 32-bit and 64-bit MIPS
Patch by Duane Sand <Duane.Sand@imgtec.com>
llvm-svn: 211588
|
| |
|
|
|
|
| |
It doesn't make a lot on most targets and the code isn't ready for it. PR20113.
llvm-svn: 211583
|
| |
|
|
|
|
| |
We can't analyze the individual values of a vector expression. PR20114.
llvm-svn: 211581
|
| |
|
|
|
|
|
|
|
| |
Referencing a dllimport variable requires actually instructions, not
just a relocation. This fixes PR19955.
Differential Revision: http://reviews.llvm.org/D4249
llvm-svn: 211571
|
| |
|
|
|
|
| |
caused by defect in isBuildVectorAllZeros().
llvm-svn: 211567
|
| |
|
|
|
|
|
|
|
| |
V' bit in the P2 byte of the EVEX prefix provides the top bit of the NDD and
NDS register fields. This was simply not used in the decoder until now.
Fixes <rdar://problem/17402661>
llvm-svn: 211565
|
| |
|
|
|
|
|
|
| |
ScaledNumber has been cleaned up enough to pull out of BFI now. Still
work to do there (tests for shifting, bloated printing code, etc.), but
it seems clean enough for its new home.
llvm-svn: 211562
|
| |
|
|
| |
llvm-svn: 211561
|
| |
|
|
| |
llvm-svn: 211558
|
| |
|
|
| |
llvm-svn: 211557
|
| |
|
|
|
|
|
| |
A lot of the docs and API are out of date, but I'll leave that for a
separate commit.
llvm-svn: 211555
|
| |
|
|
|
|
|
|
| |
This makes the buffer ownership on error conditions very natural. The buffer
is only moved out of the argument if an object is constructed that now
owns the buffer.
llvm-svn: 211546
|
| |
|
|
|
|
|
|
| |
The extends the select lowering coverage by emiting pseudo cmov
instructions. These insturction will be later on lowered to control-flow to
simulate the select.
llvm-svn: 211545
|
| |
|
|
|
|
|
|
|
|
| |
This extends the select lowering to support floating-point selects. The
lowering depends on SSE instructions and that the conditon comes from a
floating-point compare. Under this conditions it is possible to emit an
optimized instruction sequence that doesn't require any branches to
simulate the select.
llvm-svn: 211544
|
| |
|
|
|
|
|
| |
Optimize the select instructions sequence to use the EFLAGS directly from a
compare when possible.
llvm-svn: 211543
|
| |
|
|
|
|
|
|
|
|
| |
This allows us to just use a std::unique_ptr to store the pointer to the buffer.
The flip side is that they have to support releasing the buffer back to the
caller.
Overall this looks like a more efficient and less brittle api.
llvm-svn: 211542
|
| |
|
|
|
|
|
|
|
| |
Revert "Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64"
Revert "Fix cmake build."
It was missing a file.
llvm-svn: 211540
|
| |
|
|
| |
llvm-svn: 211539
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is based on the changes from ARM target [1,2]
Based on ARM doc [3], if the literal value can be loaded with a valid MOV,
it can emit that instruction. This is implemented in this patch.
[1] Fix PR18345: ldr= pseudo instruction produces incorrect code when using in inline assembly
Author: David Peixotto <dpeixott@codeaurora.org>
commit b92cca222898d87bbc764fa22e805adb04ef7f13 (r200777)
[2] Implement the ldr-pseudo opcode for ARM assembly
Author: David Peixotto <dpeixott@codeaurora.org>
commit 0fa193b08627927ccaa0804a34d80480894614b8 (r197708)
[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/CJAHAIBC.html
Differential Revision: http://reviews.llvm.org/D4163
llvm-svn: 211533
|
| |
|
|
|
|
|
| |
It used to be inconvenient to mix ErrorOr and UniquePtr, but with c++11
they work OK together.
llvm-svn: 211532
|
| |
|
|
|
|
| |
Should fix DebugInfo/global.ll on the mips bot.
llvm-svn: 211527
|
| |
|
|
|
|
|
|
|
|
|
|
| |
private, but non-deleted, move members.
Certain versions of GCC (~4.7) couldn't handle the SFINAE on access
control, but with "= delete" (hidden behind a macro for portability)
this issue is worked around/addressed.
Patch by Agustín Bergé
llvm-svn: 211525
|
| |
|
|
| |
llvm-svn: 211524
|
| |
|
|
|
|
|
| |
The operand that must match one of the others does matter,
and implement selecting for it.
llvm-svn: 211523
|
| |
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D4043
llvm-svn: 211520
|
| |
|
|
| |
llvm-svn: 211519
|
| |
|
|
| |
llvm-svn: 211518
|
| |
|
|
|
|
| |
Add more tests for these.
llvm-svn: 211517
|