- Jun 25, 2014
-
-
Chandler Carruth authored
llvm-svn: 211695
-
Chandler Carruth authored
llvm-svn: 211694
-
NAKAMURA Takumi authored
Re-apply r211399, "Generate native unwind info on Win64" with a fix to ignore SEH pseudo ops in X86 JIT emitter. -- This patch enables LLVM to emit Win64-native unwind info rather than DWARF CFI. It handles all corner cases (I hope), including stack realignment. Because the unwind info is not flexible enough to describe stack frames with a gap of unknown size in the middle, such as the one caused by stack realignment, I modified register spilling code to place all spills into the fixed frame slots, so that they can be accessed relative to the frame pointer. Patch by Vadim Chugunov! Reviewed By: rnk Differential Revision: http://reviews.llvm.org/D4081 llvm-svn: 211691
-
NAKAMURA Takumi authored
llvm-svn: 211689
-
Andrea Di Biagio authored
This patch teaches the backend how to combine a build_vector that implements an 'addsub' between packed float vectors into a sequence of vector add and vector sub followed by a VSELECT. The new VSELECT is expected to be lowered into a BLENDI. At ISel stage, the sequence 'vector add + vector sub + BLENDI' is pattern-matched against ISel patterns added at r211427 to select 'addsub' instructions. Added three more ISel patterns for ADDSUB. Added test sse3-avx-addsub-2.ll to verify that we correctly emit 'addsub' instructions. llvm-svn: 211679
-
Evgeniy Stepanov authored
llvm-svn: 211678
-
Alexey Volkov authored
Differential Revision: http://reviews.llvm.org/D4275 llvm-svn: 211675
-
Evgeniy Stepanov authored
Fixes exponential compilation complexity in PR19835, caused by LICM::sink not handling the following pattern well: f = op g e = op f, g d = op e c = op d, e b = op c a = op b, c When an instruction with N uses is sunk, each of its operands gets N new uses (all of them - phi nodes). In the example above, if a had 1 use, c would have 2, e would have 4, and g would have 8. llvm-svn: 211673
-
Rafael Espindola authored
llvm-svn: 211668
-
Rafael Espindola authored
The method was empty in the null streamer but I mistakenly replaced it with the aborting one in MCStreamer. llvm-svn: 211666
-
NAKAMURA Takumi authored
MCNullStreamer.cpp: Roll back a few empty methods that have been marked as unreachable in MCStreamer.cpp. void EmitCOFFSecRel32(MCSymbol const *Symbol) override {} void EmitGPRel32Value(const MCExpr *Value) override {} It should fix crash like "llc -mtriple=i686-cygwin -filetype=null". llvm-svn: 211664
-
NAKAMURA Takumi authored
llvm-svn: 211659
-
Alp Toker authored
Cleanup only. llvm-svn: 211656
-
Rafael Espindola authored
This saves some duplicated boilerplate in RecordStreamer and NullStreamer. llvm-svn: 211653
-
Lang Hames authored
MachO files using the GDB JIT debugging interface. Patch by Keno Fischer. Thanks Keno! llvm-svn: 211652
-
Rafael Espindola authored
No functionality change. llvm-svn: 211651
-
Rafael Espindola authored
All the "real" streamers were already calling to MCStreamer::EmitLabel to do part of the work. llvm-svn: 211646
-
Juergen Ributzka authored
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
-
Tom Stellard authored
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
-
Tom Stellard authored
Now we need only one 64-bit pattern for stores. llvm-svn: 211643
-
NAKAMURA Takumi authored
llvm-svn: 211642
-
NAKAMURA Takumi authored
llvm/test/MC/AArch64/ldr-pseudo-obj-errors.s: Add -triple=aarch64-linux. AArch64 is unaware of PECOFF for now. FIXME: This should pass for also targeting aarch64-darwin. llvm-svn: 211640
-
Rafael Espindola authored
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
-
Matt Arsenault authored
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
-
- Jun 24, 2014
-
-
Sanjay Patel authored
llvm-svn: 211634
-
David Blaikie authored
Most of this is just tests that were silently succeeding in spite of schema changes I made over a year ago. Cleaning them up as they lead to failures in a change I'm working on/will come soon. test/DebugInfo/2010-01-19-DbgScope.ll was removed as it tested miscoping where a DebugLoc described a location not in the current function. The test case doesn't describe why this is a valid situation and should be supported, so I'm removing it and shortly going to commit changes that make this firmly unsupported/assert-fail. llvm-svn: 211628
-
Bill Schmidt authored
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
-
Robert Khasanov authored
Fix PR20088 Differential Revision: http://reviews.llvm.org/D4277 llvm-svn: 211617
-
Matt Arsenault authored
This corresponded to an amdil instruction which there is a 2 instruction equivalent for. llvm-svn: 211616
-
Matt Arsenault authored
llvm-svn: 211614
-
Weiming Zhao authored
The test case in "Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64" should only work with Linux. llvm-svn: 211613
-
Diego Novillo authored
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
-
Weiming Zhao authored
"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64" Missed files are added in this commit. llvm-svn: 211605
-
David Majnemer authored
Use a StringRef to hold our section prefix. This avoids multiple calls to strlen. llvm-svn: 211602
-
Christian Pirker authored
Reviewed at http://reviews.llvm.org/D4230 llvm-svn: 211601
-
Rafael Espindola authored
llvm-svn: 211597
-
Rafael Espindola authored
Once the objects are constructed, they own the buffer. Passing a unique_ptr makes that clear. llvm-svn: 211595
-
Daniel Sanders authored
Revert: r211588 - [mips] Use __clear_cache builtin instead of cacheflush() 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
-
NAKAMURA Takumi authored
libclang still requires it on cygming, lack of incomplete <mutex>. llvm-svn: 211592
-
Daniel Sanders authored
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
-