- Jun 30, 2013
-
-
Ahmed Bougacha authored
llvm-svn: 185292
-
- Jun 28, 2013
-
-
Chad Rosier authored
is trying to do. llvm-svn: 185191
-
David Blaikie authored
llvm-svn: 185131
-
- Jun 27, 2013
-
-
Nadav Rotem authored
llvm-svn: 185086
-
Nadav Rotem authored
CostModel: improve the cost model for load/store of non power-of-two types such as <3 x float>, which are popular in graphics. llvm-svn: 185085
-
Benjamin Kramer authored
llvm-svn: 185071
-
- Jun 26, 2013
-
-
Elena Demikhovsky authored
Optimized integer vector multiplication operation by replacing it with shift/xor/sub when it is possible. Fixed a bug in SDIV, where the const operand is not a splat constant vector. llvm-svn: 184931
-
- Jun 25, 2013
-
-
Arnold Schwaighofer authored
radar://14057959 llvm-svn: 184872
-
Andrew Trick authored
This reverts commit 98a9b72e8c56dc13a2617de84503a3d78352789c. llvm-svn: 184823
-
- Jun 24, 2013
-
-
Andrew Trick authored
Sorry for the unit test churn. I'll try to make the change permanently next time. llvm-svn: 184705
-
- Jun 23, 2013
-
-
Andrew Trick authored
This is an awful implementation of the target hook. But we don't have abstractions yet for common machine ops, and I don't see any quick way to make it table-driven. llvm-svn: 184664
-
- Jun 22, 2013
-
-
Chad Rosier authored
llvm-svn: 184642
-
David Blaikie authored
A FastISel optimization was causing us to emit no information for such parameters & when they go missing we end up emitting a different function type. By avoiding that shortcut we not only get types correct (very important) but also location information (handy) - even if it's only live at the start of a function & may be clobbered later. Reviewed/discussion by Evan Cheng & Dan Gohman. llvm-svn: 184604
-
- Jun 21, 2013
-
-
Andrew Trick authored
llvm-svn: 184566
-
Kevin Enderby authored
This is a bit tricky as the xacquire and xrelease hints use the same bytes, 0xf2 and 0xf3, as the repne and rep prefixes. Fortunately llvm has different llvm MCInst Opcode enums for rep/xrelease and repne/xacquire. So to make this work a boolean was added the InternalInstruction struct as part of the Prefix state which is set with the added logic in readPrefixes() when decoding an instruction to determine if these prefix bytes are to be disassembled as xacquire or xrelease. Then we let the matcher pick the normal prefix instructionID and we change the Opcode after that when it is set into the MCInst being created. rdar://11019859 llvm-svn: 184490
-
- Jun 19, 2013
-
-
Bill Wendling authored
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. llvm-svn: 184360
-
Bill Wendling authored
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. llvm-svn: 184349
-
- Jun 18, 2013
-
-
Nadav Rotem authored
llvm-svn: 184228
-
Stefanus Du Toit authored
For decoding, keep the current behavior of always decoding these as their REP versions. In the future, this could be improved to recognize the cases where these behave as XACQUIRE and XRELEASE and decode them as such. llvm-svn: 184207
-
Bill Wendling authored
Someone may want to do something crazy, like replace these objects if they change or something. No functionality change intended. llvm-svn: 184175
-
- Jun 16, 2013
-
-
David Blaikie authored
Frame index handling is now target-agnostic, so delete the target hooks for creation & asm printing of target-specific addressing in DBG_VALUEs and any related functions. llvm-svn: 184067
-
- Jun 15, 2013
-
-
Andrew Trick authored
And add Sandybridge/Haswell resource buffers. llvm-svn: 184034
-
Andrew Trick authored
llvm-svn: 184033
-
Andrew Trick authored
Replace the ill-defined MinLatency and ILPWindow properties with with straightforward buffer sizes: MCSchedMode::MicroOpBufferSize MCProcResourceDesc::BufferSize These can be used to more precisely model instruction execution if desired. Disabled some misched tests temporarily. They'll be reenabled in a few commits. llvm-svn: 184032
-
- Jun 14, 2013
-
-
Benjamin Kramer authored
Give it the right register format so we can also emit it when AVX is enabled. llvm-svn: 183971
-
- Jun 13, 2013
-
-
Benjamin Kramer authored
llvm-svn: 183907
-
- Jun 12, 2013
-
-
Patrik Hagglund authored
LLVMX86CompilationCallback2, called from inline asm. llvm-svn: 183824
-
Eric Christopher authored
match the comments and what the instruction actually does. Noticed on inspection. llvm-svn: 183809
-
Eric Christopher authored
llvm-svn: 183808
-
- Jun 10, 2013
-
-
Tim Northover authored
Previously LEA64_32r went through virtually the entire backend thinking it was using 32-bit registers until its blissful illusions were cruelly snatched away by MCInstLower and 64-bit equivalents were substituted at the last minute. This patch makes it behave normally, and take 64-bit registers as sources all the way through. Previous uses (for 32-bit arithmetic) are accommodated via SUBREG_TO_REG instructions which make the types and classes agree properly. llvm-svn: 183693
-
- Jun 09, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 183626
-
- Jun 07, 2013
-
-
Bill Wendling authored
the internals of TargetMachine could change. No functionality change intended. llvm-svn: 183571
-
Bill Wendling authored
llvm-svn: 183570
-
- Jun 06, 2013
-
-
Bill Wendling authored
Caching it as a pointer allows us to reset it if the TargetMachine object changes. llvm-svn: 183361
-
- Jun 05, 2013
-
-
Michael Liao authored
Add earlyclobber constaints to prevent input register being allocated as the output register because, according to Intel spec [1], "If any pair of the index, mask, or destination registers are the same, this instruction results a UD fault." --- [1] http://software.intel.com/sites/default/files/319433-014.pdf llvm-svn: 183327
-
Rafael Espindola authored
In ELF (as in MachO), not all relocations point to symbols. Represent this properly by using a symbol_iterator instead of a SymbolRef. Update llvm-readobj ELF's dumper to handle relocatios without symbols. llvm-svn: 183284
-
- Jun 03, 2013
-
-
Ahmed Bougacha authored
llvm-svn: 183103
-
- Jun 01, 2013
-
-
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
-