- Jun 01, 2013
-
-
Benjamin Kramer authored
Also simplify code a bit while there. No functionality change. llvm-svn: 183076
-
Benjamin Kramer authored
No functionality change. llvm-svn: 183075
-
Benjamin Kramer authored
llvm-svn: 183074
-
Benjamin Kramer authored
llvm-svn: 183073
-
Benjamin Kramer authored
llvm-svn: 183072
-
Tim Northover authored
llvm-svn: 183071
-
Tim Northover authored
Very sorry, it was committed from the wrong branch by mistake. llvm-svn: 183070
-
Tim Northover authored
llvm-svn: 183069
-
Tim Northover authored
The MOV64ri64i32 instruction required hacky MCInst lowering because it was allocated as setting a GR64, but the eventual instruction ("movl") only set a GR32. This converts it into a so-called "MOV32ri64" which still accepts a (appropriate) 64-bit immediate but defines a GR32. This is then converted to the full GR64 by a SUBREG_TO_REG operation, thus keeping everyone happy. This fixes a typo in the opcode field of the original patch, which should make the legact JIT work again (& adds test for that problem). llvm-svn: 183068
-
Venkatraman Govindaraju authored
llvm-svn: 183067
-
Michael Gottesman authored
Removed a comment above an include which is unnecessary and added a missing closing @} for a doxygen comment. llvm-svn: 183065
-
Michael Gottesman authored
llvm-svn: 183064
-
Michael Gottesman authored
Also added a few more method comments and performed some copy editing. llvm-svn: 183063
-
Ahmed Bougacha authored
This also makes TableGen able to compute sizes/offsets of synthesized indices representing tuples. llvm-svn: 183061
-
Andrew Trick authored
Fixes rdar:14036816, PR16130. There is an opportunity to compute precise trip counts for 'or' expressions and multi-exit loops. rdar:14038809: Optimize trip count computation for multi-exit loops. To do this we need to record the fact that ExitLimit assumes NSW. When it does not we can safely assume that the loop trip count is the minimum ExitLimt across all subexpressions and loop exits. llvm-svn: 183060
-
Eric Christopher authored
seems to have caused PR16192 and other JIT related failures. llvm-svn: 183059
-
Eric Christopher authored
llvm-svn: 183057
-
Eric Christopher authored
llvm-svn: 183054
-
Eric Christopher authored
llvm-svn: 183053
-
Eric Christopher authored
llvm-svn: 183052
-
Eric Christopher authored
llvm-svn: 183051
-
- May 31, 2013
-
-
Arnold Schwaighofer authored
Use ScalarEvolution's getBackedgeTakenCount API instead of getExitCount since that is really what we want to know. Using the more specific getExitCount was safe because we made sure that there is only one exiting block. No functionality change. llvm-svn: 183047
-
Quentin Colombet authored
Account for the cost of scaling factor in Loop Strength Reduce when rating the formulae. This uses a target hook. The default implementation of the hook is: if the addressing mode is legal, the scaling factor is free. <rdar://problem/13806271> llvm-svn: 183045
-
Rafael Espindola authored
llvm-svn: 183043
-
Rafael Espindola authored
llvm-svn: 183042
-
Rafael Espindola authored
llvm-svn: 183041
-
Rafael Espindola authored
llvm-svn: 183040
-
Arnold Schwaighofer authored
We check that instructions in the loop don't have outside users (except if they are reduction values). Unfortunately, we skipped this check for if-convertable PHIs. Fixes PR16184. llvm-svn: 183035
-
Benjamin Kramer authored
Fixes a leak found by valgrind. llvm-svn: 183031
-
Michael Gottesman authored
llvm-svn: 183028
-
Quentin Colombet authored
Namely, check if the target allows to fold more that one register in the addressing mode and if yes, adjust the cost accordingly. Prior to this commit, reg1 + scale * reg2 accesses were artificially preferred to reg1 + reg2 accesses. Indeed, the cost model wrongly assumed that reg1 + reg2 needs a temporary register for the computation, whereas it was correctly estimated for reg1 + scale * reg2. <rdar://problem/13973908> llvm-svn: 183021
-
Ahmed Bougacha authored
NOTE: If this broke your out-of-tree backend, in *RegisterInfo.td, change the instances of SubRegIndex that have a comps template arg to use the ComposedSubRegIndex class instead. In TableGen land, this adds Size and Offset attributes to SubRegIndex, and the ComposedSubRegIndex class, for which the Size and Offset are computed by TableGen. This also adds an accessor in MCRegisterInfo, and Size/Offsets for the X86 and ARM subreg indices. llvm-svn: 183020
-
Andrew Trick authored
llvm-svn: 183017
-
Kai Nacke authored
Removes all uses of the variable UsesNewEH. Simply return false in case that no resume instructions were found. llvm-svn: 183016
-
Tim Northover authored
Patch by Amaury de la Vieuville. llvm-svn: 183012
-
Tim Northover authored
These instructions are deprecated oddities, but we still need to be able to disassemble (and reassemble) them if and when they're encountered. Patch by Amaury de la Vieuville. llvm-svn: 183011
-
Rafael Espindola authored
Patch by Andrea Di Biagio. llvm-svn: 183005
-
Tim Northover authored
The disassembly of VEXT instructions was too lax in the bits checked. This fixes the case where the instruction affects Q-registers but a misaligned lane was specified (should be UNDEFINED). Patch by Amaury de la Vieuville llvm-svn: 183003
-
Richard Sandiford authored
Unlike most -- hopefully "all other", but I'm still checking -- memory instructions we support, LOAD REVERSED and STORE REVERSED may access the memory location several times. This means that they are not suitable for volatile loads and stores. This patch is a prerequisite for better atomic load and store support. The same principle applies there: almost all memory instructions we support are inherently atomic ("block concurrent"), but LOAD REVERSED and STORE REVERSED are exceptions. Other instructions continue to allow volatile operands. I will add positive "allows volatile" tests at the same time as the "allows atomic load or store" tests. llvm-svn: 183002
-
Justin Holewinski authored
Now that 3.3 is branched, we are re-enabling virtual registers to help iron out bugs before the next release. Some of the post-RA passes do not play well with virtual registers, so we disable them for now. The needed functionality of the PrologEpilogInserter pass is copied to a new backend-specific NVPTXPrologEpilog pass. The test for this commit is not breaking the existing tests. llvm-svn: 182998
-