- Nov 28, 2013
-
-
NAKAMURA Takumi authored
I forgot to commit them. They were staging in my local repo. llvm-svn: 195924
-
Daniel Sanders authored
llvm-svn: 195923
-
Daniel Sanders authored
Will be reverted in the next commit llvm-svn: 195922
-
NAKAMURA Takumi authored
llvm-svn: 195921
-
NAKAMURA Takumi authored
llvm-svn: 195920
-
Rafael Espindola authored
llvm-svn: 195911
-
Hal Finkel authored
Instead of sharing functional unit names between the various PPC itineraries, give each core its own unit names prefixed with the core name. This follows the convention used by other backends (such as ARM), and removes a non-obvious ordering dependency between the various PPCSchedule*.td files. No functionality change intended. llvm-svn: 195908
-
Jiangning Liu authored
caused by build options [-Werror,-Wunused-variable]. llvm-svn: 195905
-
Hao Liu authored
llvm-svn: 195903
-
Reed Kotler authored
conditional branches for very large targets. That will be the next small patch. Everything now should in principle work as good (functionality wise) as without constant islands so we decided at Mips/Imagination to make constant islands the default for Mips16 now so that it will get excercised a lot and this port is still experimentatl though hopefully soon we will change the status. Some more cleanup and code review is in order but things are converging fast. llvm-svn: 195902
-
Akira Hatanaka authored
No functionality change. llvm-svn: 195896
-
Akira Hatanaka authored
llvm-svn: 195894
-
Akira Hatanaka authored
make PIC calls a little more efficient: 1. Remove instructions setting up $gp if it is known that a function has been called at least once. 2. Save the address of a called function in a register instead of loading it from the GOT at every call site. llvm-svn: 195892
-
Hal Finkel authored
This adds the IIC_ prefix to the instruction itinerary class names, giving the PPC backend a naming convention for itinerary classes that is more consistent with that used by the X86 and ARM backends. Instruction scheduling in the PPC backend needs a bunch of cleanup and improvement (especially for the ooo cores). This is just a preliminary step. No functionality change intended. llvm-svn: 195890
-
- Nov 27, 2013
-
-
Rafael Espindola authored
llvm-svn: 195884
-
Rafael Espindola authored
llvm-svn: 195883
-
Tom Stellard authored
NOTE: This is a candidate for the 3.4 branch. llvm-svn: 195881
-
Tom Stellard authored
SGPRs are spilled into VGPRs using the {READ,WRITE}LANE_B32 instructions. v2: - Fix encoding of Lane Mask - Use correct register flags, so we don't overwrite the low dword when restoring multi-dword registers. v3: - Register spilling seems to hang the GPU, so replace all shaders that need spilling with a dummy shader. v4: - Fix *LANE definitions - Change destination reg class for 32-bit SMRD instructions v5: - Remove small optimization that was crashing Serious Sam 3. https://bugs.freedesktop.org/show_bug.cgi?id=68224 https://bugs.freedesktop.org/show_bug.cgi?id=71285 NOTE: This is a candidate for the 3.4 branch. llvm-svn: 195880
-
Tom Stellard authored
Writing to the M0 register from an SMRD instruction hangs the GPU, so we need to use the SGPR_32 register class, which does not include M0. NOTE: This is a candidate for the 3.4 branch. llvm-svn: 195879
-
Tom Stellard authored
NOTE: This is a candidate for the 3.4 branch. llvm-svn: 195878
-
Rafael Espindola authored
MO_ExternalSymbol and MO_JumpTableIndex don't show up in inline asm. llvm-svn: 195861
-
Rafael Espindola authored
llvm-svn: 195859
-
Rafael Espindola authored
llvm-svn: 195857
-
Rafael Espindola authored
MO_ConstantPoolIndex is handled in printLeaMemReference. MO_JumpTableIndex and MO_ExternalSymbol don't show up in inline asm. llvm-svn: 195847
-
Jiangning Liu authored
llvm-svn: 195843
-
Rafael Espindola authored
llvm-svn: 195826
-
Rafael Espindola authored
llvm-svn: 195825
-
Rafael Espindola authored
It is only used for asm printing. On X86 we put basic block addresses on register before passing them to inline asm, so the MO_MachineBasicBlock case was dead. MO_ExternalSymbol was dead since any symbol being passed to inline asm is represented as MO_GlobalAddress. The MO_GlobalAddress and MO_Register cases were not tested. llvm-svn: 195824
-
Hal Finkel authored
llvm-svn: 195807
-
Rafael Espindola authored
llvm-svn: 195806
-
Chad Rosier authored
llvm-svn: 195803
-
- Nov 26, 2013
-
-
Chad Rosier authored
instructions. llvm-svn: 195788
-
Reed Kotler authored
The determination of when we are doing constant pools was being made too early in the asm printer. llvm-svn: 195781
-
Michael Liao authored
- Fix bug in (vsext (vzext x)) -> (vsext x) in SIGN_EXTEND_IN_REG lowering where we need to check whether x is a vector type (in-reg type) of i8, i16 or i32; otherwise, that optimization is not valid. llvm-svn: 195779
-
Tim Northover authored
llvm-svn: 195759
-
Richard Sandiford authored
We would wrongly transform the testcase into the equivalent of an AND with 1. The problem was that, when testing whether the shifted-in bits of the right shift were significant, we used the width of the final zero-extended result rather than the width of the shifted value. llvm-svn: 195731
-
Kevin Qin authored
and TRN. Fix a bug when mixed use of vget_high_u8() and vuzp_u8(). llvm-svn: 195716
-
Kevin Qin authored
llvm-svn: 195713
-
Andrew Trick authored
A Direct stack map location records the address of frame index. This address is itself the value that the runtime requested. This differs from IndirectMemRefOp locations, which refer to a stack locations from which the requested values must be loaded. Direct locations can directly communicate the address if an alloca, while IndirectMemRefOp handle register spills. For example: entry: %a = alloca i64... llvm.experimental.stackmap(i32 <ID>, i32 <shadowBytes>, i64* %a) Since both the alloca and stackmap intrinsic are in the entry block, and the intrinsic takes the address of the alloca, the runtime can assume that LLVM will not substitute alloca with any intervening value. This must be verified by the runtime by checking that the stack map's location is a Direct location type. The runtime can then determine the alloca's relative location on the stack immediately after compilation, or at any time thereafter. This differs from Register and Indirect locations, because the runtime can only read the values in those locations when execution reaches the instruction address of the stack map. llvm-svn: 195712
-
Andrew Trick authored
llvm-svn: 195711
-