- Oct 11, 2013
-
-
Craig Topper authored
llvm-svn: 192425
-
NAKAMURA Takumi authored
llvm-svn: 192421
-
Kevin Qin authored
llvm-svn: 192410
-
Matt Arsenault authored
llvm-svn: 192406
-
Matthias Braun authored
llvm-svn: 192404
-
Matthias Braun authored
llvm-svn: 192403
-
- Oct 10, 2013
-
-
Matthias Braun authored
llvm-svn: 192398
-
Matthias Braun authored
Previously LiveInterval has been used, but having a spill weight and register number is unnecessary for a register unit. llvm-svn: 192397
-
Matthias Braun authored
Also change some pointer arguments to references at some places where 0-pointers are not allowed. llvm-svn: 192396
-
Matthias Braun authored
llvm-svn: 192395
-
Matthias Braun authored
This makes the API a bit more natural to use and makes it easier to make LiveRanges implementation details private. llvm-svn: 192394
-
Matthias Braun authored
LiveRange just manages a list of segments and a list of value numbers now as LiveInterval did previously, but without having details like spill weight or a fixed register number. LiveInterval is now a subclass of LiveRange and simply adds the spill weight and the register number. llvm-svn: 192393
-
Matthias Braun authored
The Segment struct contains a single interval; multiple instances of this struct are used to construct a live range, but the struct is not a live range by itself. llvm-svn: 192392
-
Matthias Braun authored
llvm-svn: 192391
-
Sriram Murali authored
- fix comments on vector type legalization llvm-svn: 192389
-
Matt Arsenault authored
llvm-svn: 192386
-
Matt Arsenault authored
llvm-svn: 192380
-
Manman Ren authored
DIScopeRef. A paired commit at clang is required due to changes to DIBuilder. llvm-svn: 192378
-
Manman Ren authored
llvm-svn: 192376
-
Matt Arsenault authored
llvm-svn: 192375
-
Hans Wennborg authored
Patch by Josh Samuel! llvm-svn: 192371
-
Hans Wennborg authored
We previously failed to check whether the SUCCESS variable was set, and would thus always exit with a failure if vs2012 didn't exist. llvm-svn: 192370
-
Tom Stellard authored
The function is used by the machine verifier and checks that VOP* instructions have legal operands. llvm-svn: 192367
-
Tom Stellard authored
We can't enable the verifier for tests with SI_IF and SI_ELSE, because these instructions are always followed by a COPY which copies their result to the next basic block. This violates the machine verifier's rule that non-terminators can not folow terminators. Reviewed-by: Vincent Lejeune<vljn at ovi.com> llvm-svn: 192366
-
Tom Stellard authored
During instruction selection, we rewrite the destination register class for MIMG instructions based on their writemasks. This creates machine verifier errors since the new register class does not match the register class in the MIMG instruction definition. We can avoid this by defining different MIMG instructions for each possible destination type and then switching to the correct instruction when we change the register class. llvm-svn: 192365
-
Tom Stellard authored
This prevents the machine verifier from complaining about uses of an undefined physical register. Reviewed-by: Vincent Lejeune<vljn at ovi.com> llvm-svn: 192364
-
Tom Stellard authored
StructurizeCFG pass allows to make complex cfg reducible ; it allows a lot of shader from shadertoy (which exhibits complex control flow constructs) to works correctly with respect to CFG handling (and allow us to detect potential bug in other part of the backend). We provide a cmd line argument to disable the pass for debug purpose. Patch by: Vincent Lejeune Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 192363
-
Hao Liu authored
Including following 14 instructions: 4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers. ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4). 4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers. st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4). llvm-svn: 192361
-
Rafael Espindola authored
Revert "Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem). Including following 14 instructions: 4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers. ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4). 4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers. st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4)." This reverts commit r192352. It broke the build. llvm-svn: 192354
-
Hao Liu authored
Including following 14 instructions: 4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers. ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4). 4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers. st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4). llvm-svn: 192352
-
Benjamin Kramer authored
llvm-svn: 192350
-
Benjamin Kramer authored
llvm-svn: 192348
-
Tim Northover authored
When we had a sequence like: s1 = VLDRS [r0, 1], Q0<imp-def> s3 = VLDRS [r0, 2], Q0<imp-use,kill>, Q0<imp-def> s0 = VLDRS [r0, 0], Q0<imp-use,kill>, Q0<imp-def> s2 = VLDRS [r0, 4], Q0<imp-use,kill>, Q0<imp-def> we were gathering the {s0, s1} loads below the s3 load. This is fine, but confused the verifier since now the s3 load had Q0<imp-use> with no definition above it. This should mark such uses <undef> as well. The liveness structure at the beginning and end of the block is unaffected, and the true sN definitions should prevent any dodgy reorderings being introduced elsewhere. rdar://problem/15124449 llvm-svn: 192344
-
Craig Topper authored
llvm-svn: 192341
-
Craig Topper authored
llvm-svn: 192340
-
Craig Topper authored
llvm-svn: 192339
-
Akira Hatanaka authored
ins/ext. llvm-svn: 192330
-
Rui Ueyama authored
This reverts commit r192316. The original change introduced circular dependencies between libTarget and backends. That would broke a build unless link everything into one big binary. llvm-svn: 192329
-
- Oct 09, 2013
-
-
Manman Ren authored
template_value are updated to use DIRef. A paired commit at clang is required due to changes to DIBuilder. llvm-svn: 192320
-
Anders Waldenborg authored
Making them proper functions defined in the (shared)lib instead of static inlines defined in the header files makes it possible to actually distribute a binary compiled against the shared library without having to worry about getting undefined symbol errors when calling e.g LLVMInitializeAllTargetInfos because the shared library on the other system was compiled with different targets. Differential Revision: http://llvm-reviews.chandlerc.com/D1714 llvm-svn: 192316
-