- Jan 24, 2014
-
-
Venkatraman Govindaraju authored
Add test cases to check parsing of v9 double registers and their aliased quad registers. llvm-svn: 199974
-
Rafael Espindola authored
llvm-svn: 199955
-
- Jan 23, 2014
-
-
Kevin Enderby authored
registers in memory addresses that do not match the index register. As it does for .att_syntax. rdar://15887380 llvm-svn: 199948
-
Kevin Enderby authored
scale factors in memory addresses. As it does for .att_syntax. It was producing: Assertion failed: (((Scale == 1 || Scale == 2 || Scale == 4 || Scale == 8)) && "Invalid scale!"), function CreateMem, file /Volumes/SandBox/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp, line 1133. rdar://14967214 llvm-svn: 199942
-
Eric Christopher authored
code this looks correct, but could use review. The previous was definitely not correct. llvm-svn: 199940
-
Lang Hames authored
llvm-svn: 199938
-
Lang Hames authored
loops. Writing back to the accumulator (231-type) allows the coalescer to eliminate an extra copy. llvm-svn: 199933
-
Weiming Zhao authored
Originally, BLX was passed as operand #0 in MachineInstr and as operand #2 in MCInst. But now, it's operand #2 in both cases. This patch also removes unnecessary FileCheck in the test case added by r199127. llvm-svn: 199928
-
Juergen Ributzka authored
This patch adds the target analysis passes (usually TargetTransformInfo) to the codgen pipeline. We also expose now the AddAnalysisPasses method through the C API, because the optimizer passes would also benefit from better target-specific cost models. Reviewed by Andrew Kaylor llvm-svn: 199926
-
Ana Pazos authored
llvm-svn: 199925
-
Tom Stellard authored
This fixes a crash in the OpenCV OpenCL test suite. There is no lit test for this, because the test would be very large and could easily be invalidated by changes to the scheduler or other parts of the compiler. Patch by: Vincent Lejeune llvm-svn: 199919
-
Tom Stellard authored
This pattern uses an SDNodeXForm, which isn't being emitted for some reason. I can get it to work by attaching the PatLeaf that has the XForm to the argument in the output pattern, but this results in an immediate being used in a register operand, which the backend can't handle yet. llvm-svn: 199918
-
Tom Stellard authored
The control flow finalizer would sometimes use an ALU_POP_AFTER instruction before the vetex fetch clause instead of using a POP instruction after it. llvm-svn: 199917
-
Tom Stellard authored
Implement the getUnrollingPreferences() function for AMDGPUTargetTransformInfo so that loops that do address calculations on pointers derived from alloca are unconditionally unrolled. Unrolling these loops makes it more likely that SROA will be able to eliminate the allocas, which is a big win for R600 since memory allocated by alloca (private memory) is really slow. llvm-svn: 199916
-
Tom Stellard authored
The unit test is now disabled on non-asserts builds. The CF stack can be corrupted if you use CF_ALU_PUSH_BEFORE, CF_ALU_ELSE_AFTER, CF_ALU_BREAK, or CF_ALU_CONTINUE when the number of sub-entries on the stack is greater than or equal to the stack entry size and sub-entries modulo 4 is either 0 or 3 (on cedar the bug is present when number of sub-entries module 8 is either 7 or 0) We choose to be conservative and always apply the work-around when the number of sub-enries is greater than or equal to the stack entry size, so that we can safely over-allocate the stack when we are unsure of the stack allocation rules. reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199905
-
Elena Demikhovsky authored
they give better sequences than VPERMI llvm-svn: 199893
-
Tim Northover authored
With constant-sharing, litpool loads consume 4 + N*2 bytes of code, but movw/movt pairs consume 8*N. This means litpools are better than movw/movt even with just one use. Other materialisation strategies can still be better though, so the logic is a little odd. llvm-svn: 199891
-
Daniel Sanders authored
No functional change since the InstrItinData's have been duplicated. llvm-svn: 199876
-
Eric Christopher authored
e.g. linkonce, to TargetMachine and set it when we've done so for ELF targets currently. This involved making TargetMachine non-const in a TLOF use and propagating that change around - I'm open to other ideas. This will be used in a future commit to handle emitting debug information with ranges. llvm-svn: 199871
-
Kevin Qin authored
llvm-svn: 199858
-
NAKAMURA Takumi authored
llvm-svn: 199855
-
Jack Carter authored
llvm-svn: 199853
-
Jack Carter authored
This patch updates .set mips16 support which affects the ELF ABI and its flags. In addition the patch uses a common interface for both the MipsTargetSteamer and MipsObjectStreamer that the assembler uses for both ELF and ASCII output for these directives. llvm-svn: 199851
-
- Jan 22, 2014
-
-
Tom Stellard authored
This reverts commit 35b8331cad6eb512a2506adbc394201181da94ba. The -debug-only flag for llc doesn't appear to be available in all build configurations. llvm-svn: 199845
-
Tom Stellard authored
The CF stack can be corrupted if you use CF_ALU_PUSH_BEFORE, CF_ALU_ELSE_AFTER, CF_ALU_BREAK, or CF_ALU_CONTINUE when the number of sub-entries on the stack is greater than or equal to the stack entry size and sub-entries modulo 4 is either 0 or 3 (on cedar the bug is present when number of sub-entries module 8 is either 7 or 0) We choose to be conservative and always apply the work-around when the number of sub-enries is greater than or equal to the stack entry size, so that we can safely over-allocate the stack when we are unsure of the stack allocation rules. reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199842
-
Tom Stellard authored
reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199841
-
Tom Stellard authored
reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199840
-
Tom Stellard authored
reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199839
-
Tom Stellard authored
v2: - Initialize wavefront size to 0 reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199838
-
Tom Stellard authored
reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199837
-
Rafael Espindola authored
My understanding (from reading just the llvm code) is that * most ppc cpus have a "sync n" instruction and an msync alias that is "sync 0". * "book e" cpus instead have a msync instruction and not the more general "sync n" This patch reflects that in the .td files, allowing a single codepath for asm ond obj streamer and incidentelly fixes a crash when EmitRawText was called on a obj streamer. llvm-svn: 199832
-
Tom Stellard authored
llvm-svn: 199827
-
Tom Stellard authored
llvm-svn: 199826
-
Tom Stellard authored
llvm-svn: 199825
-
Tom Stellard authored
This way private memory does not over-write work group information stored in GPRs 0 and 1. llvm-svn: 199824
-
Tom Stellard authored
llvm-svn: 199823
-
Greg Fitzgerald authored
This patch restores the ARM mode if the user's inline assembly does not. In the object streamer, it ensures that instructions following the inline assembly are encoded correctly and that correct mapping symbols are emitted. For the asm streamer, it emits a .arm or .thumb directive. This patch does not ensure that the inline assembly contains the ADR instruction to switch modes at runtime. The problem we need to solve is code like this: int foo(int a, int b) { int r = a + b; asm volatile( ".align 2 \n" ".arm \n" "add r0,r0,r0 \n" : : "r"(r)); return r+1; } If we compile this function in thumb mode then the inline assembly will switch to arm mode. We need to make sure that we switch back to thumb mode after emitting the inline assembly or we will incorrectly encode the instructions that follow (i.e. the assembly instructions for return r+1). Based on patch by David Peixotto Change-Id: Ib57f6d2d78a22afad5de8693fba6230ff56ba48b llvm-svn: 199818
-
Benjamin Kramer authored
Found by -Wdocumentation. llvm-svn: 199814
-
David Woodhouse authored
llvm-svn: 199812
-
David Woodhouse authored
llvm-svn: 199811
-