- Oct 29, 2013
-
-
Rafael Espindola authored
This allows constructing a Mangler with just a TargetMachine. llvm-svn: 193630
-
Rafael Espindola authored
llvm-svn: 193627
-
Weiming Zhao authored
Fixes PR17690 llvm-svn: 193625
-
Amara Emerson authored
llvm-svn: 193624
-
Zoran Jovanovic authored
llvm-svn: 193623
-
Tom Stellard authored
v2: - Fix LDS size calculation Reviewed-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 193621
-
Tom Stellard authored
llvm-svn: 193620
-
Rafael Espindola authored
llvm-svn: 193618
-
Rafael Espindola authored
llvm-svn: 193617
-
Rafael Espindola authored
llvm-svn: 193616
-
Bernard Ogden authored
Adds a subtarget feature for the CRC instructions (optional in v8-A) to the ARM (32-bit) backend. Differential Revision: http://llvm-reviews.chandlerc.com/D2036 llvm-svn: 193599
-
Tim Northover authored
This is used in the Linux kernel, and effectively just means "print an address". llvm-svn: 193593
-
Arnold Schwaighofer authored
Updated a test case that assumed that <2 x double> would vectorize to use <4 x float>. radar://15338229 llvm-svn: 193574
-
Arnold Schwaighofer authored
By vectorizing a series of srl, or, ... instructions we have obfuscated the intention so much that the backend does not know how to fold this code away. radar://15336950 llvm-svn: 193573
-
- Oct 28, 2013
-
-
Akira Hatanaka authored
No functionality change. llvm-svn: 193540
-
Lang Hames authored
an MCExpr, in order to avoid writing an encoded zero value in the immediate field. When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we don't know what the final immediate field value should be. We shouldn't explicitly set the immediate field to an encoded zero value as zero is encoded with a non-zero bit pattern. This leads to bits being set that pollute the final immediate value. The nature of the encoding is such that the polluted bits only affect very large immediate values, explaining why this hasn't caused problems earlier. Fixes <rdar://problem/15155975>. llvm-svn: 193535
-
Logan Chien authored
This commit allows the ARM integrated assembler to parse and assemble the code with .eabi_attribute, .cpu, and .fpu directives. To implement the feature, this commit moves the code from AttrEmitter to ARMTargetStreamers, and several new test cases related to cortex-m4, cortex-r5, and cortex-a15 are added. Besides, this commit also change the Subtarget->isFPOnlySP() to Subtarget->hasD16() to match the usage of .fpu directive. This commit changes the test cases: * Several .eabi_attribute directives in 2010-09-29-mc-asm-header-test.ll are removed because the .fpu directive already cover the functionality. * In the Cortex-A15 test case, the value for Tag_Advanced_SIMD_arch has be changed from 1 to 2, which is more precise. llvm-svn: 193524
-
Richard Sandiford authored
useAA significantly improves the handling of vector code that has TBAA information attached. It also helps other cases, as shown by the testsuite changes here. The only real downside I've seen is that it interferes with MergeConsecutiveStores. The problem is that that optimization works top down, starting at the first store in the chain, and looks for cases where the chain result is only used by a single related store. These related stores don't alias, so useAA will have rewritten all the later stores to use a different chain input (typically the same one as the first store). I think the advantages outweigh the disadvantages though, so for now I've just disabled alias analysis for the unaligned-01.ll test. llvm-svn: 193521
-
NAKAMURA Takumi authored
llvm-svn: 193512
-
NAKAMURA Takumi authored
llvm-svn: 193511
-
NAKAMURA Takumi authored
llvm-svn: 193510
-
- Oct 27, 2013
-
-
Reed Kotler authored
Before I just ported the shell of the pass. I've tried to keep everything nearly identical to the ARM version. I think it will be very easy to eventually merge these two and create a new more general pass that other targets can use. I have some improvements I would like to make to allow pools to be shared across functions and some other things. When I'm all done we can think about making a more general pass. More to be ported but the basic mechanism works now almost as good as gcc mips16. llvm-svn: 193509
-
Benjamin Kramer authored
llvm-svn: 193500
-
Benjamin Kramer authored
llvm-svn: 193499
-
Elena Demikhovsky authored
Patch by Cameron McInally <cameron.mcinally@nyu.edu> llvm-svn: 193497
-
- Oct 25, 2013
-
-
Quentin Colombet authored
Patch by Cameron McInally <cameron.mcinally@nyu.edu> llvm-svn: 193422
-
Quentin Colombet authored
Patch by Cameron McInally <cameron.mcinally@nyu.edu> llvm-svn: 193421
-
Tim Northover authored
When assembling, a .thumb_func directive is supposed to be applicable to the next symbol definition, even if there are intervening directives. We were racing ahead to try and find it, and this commit should fix the issue. Patch by Gabor Ballabas llvm-svn: 193403
-
Tim Northover authored
There's a barrier instruction so that should still be used, but most actual atomic operations are going to need a platform decision on the correct behaviour (either nop if single-threaded or OS-support otherwise). rdar://problem/15287210 llvm-svn: 193399
-
Nadav Rotem authored
This optimization is not SSE specific so I am moving it to DAGco. The new scalar_to_vector dag node exposed a missing pattern in the AArch64 target that I needed to add. llvm-svn: 193393
-
Jim Grosbach authored
Only use them if the subtarget has ARM mode, as these routines are implemented as ARM code. rdar://15302004 llvm-svn: 193381
-
- Oct 24, 2013
-
-
David Peixotto authored
This commit changes the struct byval lowering for arm to use inline checks for the subtarget instead of a class abstraction to represent the differences. The class abstraction was judged to be too much code for this task. No intended functionality change. llvm-svn: 193357
-
Tim Northover authored
This prevents us from silently accepting invalid instructions on (for example) Cortex-M4 with just single-precision VFP support. No tests for the extra Pat Requires because they're essentially assertions: the affected code should have been lowered to libcalls before ISel. rdar://problem/15302004 llvm-svn: 193354
-
Tim Northover authored
The fused multiply instructions were added in VFPv4 but are still NEON instructions, in particular they shouldn't be available on a Cortex-M4 not matter how floaty it is. llvm-svn: 193342
-
Tim Northover authored
If an alias inherits directly from InstAlias then it doesn't get any default "Requires" values, so llvm-mc will allow it even on architectures that don't support the underlying instruction. This tidies up the obvious VFP and NEON cases I found. llvm-svn: 193340
-
Tim Northover authored
The compiler-rt functions __adddf3vfp and so on exist purely to allow Thumb1 code to make use of VFP instructions by switching back to ARM mode, they make no sense for M-class processors which don't even have an ARM mode. Given that justification, in practice this is a platform ABI decision so the actual check is based on that rather than CPU features. rdar://problem/15302004 llvm-svn: 193327
-
Tim Northover authored
POP instructions are aliased to the ARM LDM variants but have different syntax. This caused two problems: we tried to access a non-existent operand to annotate the '!', and the error message didn't make much sense. With some vigorous hand-waving in the error message both problems can be fixed. llvm-svn: 193322
-
Job Noorman authored
llvm-svn: 193320
-
Amara Emerson authored
When generating the IfTrue basic block during the F128CSEL pseudo-instruction handling, the NZCV live-in for the newly created BB wasn't being added. This caused a fault during MI-sched/live range calculation when the predecessor for the fall-through BB didn't have a live-in for phys-reg as expected. llvm-svn: 193316
-
Elena Demikhovsky authored
llvm-svn: 193312
-