- Mar 28, 2010
-
-
Chris Lattner authored
llvm-svn: 99748
-
Chris Lattner authored
llvm-svn: 99743
-
Chris Lattner authored
nodes all have an EFLAGS result when made by isel lowering. llvm-svn: 99736
-
- Mar 27, 2010
-
-
Chris Lattner authored
llvm-svn: 99700
-
Chris Lattner authored
llvm-svn: 99686
-
- Mar 26, 2010
-
-
Evan Cheng authored
llvm-svn: 99620
-
Evan Cheng authored
llvm-svn: 99598
-
- Mar 25, 2010
-
-
Daniel Dunbar authored
llvm-svn: 99542
-
Jakob Stoklund Olesen authored
llvm-svn: 99540
-
Jakob Stoklund Olesen authored
Remove much horribleness from X86InstrFormats as a result. Similar simplifications are probably possible for other targets. llvm-svn: 99539
-
Jakob Stoklund Olesen authored
On Nehalem and newer CPUs there is a 2 cycle latency penalty on using a register in a different domain than where it was defined. Some instructions have equvivalents for different domains, like por/orps/orpd. The SSEDomainFix pass tries to minimize the number of domain crossings by changing between equvivalent opcodes where possible. This is a work in progress, in particular the pass doesn't do anything yet. SSE instructions are tagged with their execution domain in TableGen using the last two bits of TSFlags. Note that not all instructions are tagged correctly. Life just isn't that simple. The SSE execution domain issue is very similar to the ARM NEON/VFP pipeline issue handled by NEONMoveFixPass. This pass may become target independent to handle both. llvm-svn: 99524
-
Bob Wilson authored
opcode values fitting in one byte (svn r99494). llvm-svn: 99514
-
Chris Lattner authored
handles dead implicit results more aggressively. More to come, I think this is now just a data entry problem. llvm-svn: 99486
-
Evan Cheng authored
addl $12, %esp popl %esi popl %edi popl %ebx popl %ebp jmpl *__Block_deallocator-L1$pb(%esi) # TAILCALL The problem is the global base register is assigned GR32 register class. TCRETURNmi needs the registers making up the address mode to have the GR32_TC register class. The *proper* fix is for X86DAGToDAGISel::getGlobalBaseReg() to return a copy from the global base register of the machine function rather than returning the register itself. But that has the potential of causing it to be coalesced to a more restrictive register class: GR32_TC. It can introduce additional copies and spills. For something as important the PIC base, it's not worth it especially since this is not an issue on 64-bit. llvm-svn: 99455
-
Bob Wilson authored
--- Reverse-merging r99440 into '.': U test/MC/AsmParser/X86/x86_32-bit_cat.s U test/MC/AsmParser/X86/x86_32-encoding.s U include/llvm/IntrinsicsX86.td U include/llvm/CodeGen/SelectionDAGNodes.h U lib/Target/X86/X86InstrSSE.td U lib/Target/X86/X86ISelLowering.h llvm-svn: 99450
-
- Mar 24, 2010
-
-
Kevin Enderby authored
llvm-svn: 99440
-
Kevin Enderby authored
not get an "Unknown immediate size" assert failure when used. All instructions of this form have an 8-bit immediate. Also added a test case of an example instruction that is of this form. llvm-svn: 99435
-
Nate Begeman authored
llvm-svn: 99434
-
Nate Begeman authored
llvm-svn: 99423
-
Chris Lattner authored
and defining the add pattern with Pat<>, eliminating a use of parallel. llvm-svn: 99375
-
Chris Lattner authored
llvm-svn: 99370
-
Chris Lattner authored
ISD node. The only change in the generated isel code are comments like: < // Src: (X86dec_flag:i16 GR16:i16:$src) --- > // Src: (X86dec_flag:i16:i32 GR16:i16:$src) because now it knows that X86dec_flag returns both an i16 (for the result) and an i32 (for EFLAGS) in this case. Wewt. llvm-svn: 99369
-
Chris Lattner authored
llvm-svn: 99360
-
Chris Lattner authored
llvm-svn: 99359
-
Chris Lattner authored
llvm-svn: 99358
-
Jakob Stoklund Olesen authored
This reverts commit 99345. It was breaking buildbots. llvm-svn: 99352
-
Jakob Stoklund Olesen authored
This is work in progress. So far, SSE execution domain tables are added to X86InstrInfo, and a skeleton pass is enabled with -sse-domain-fix. llvm-svn: 99345
-
- Mar 23, 2010
-
-
Evan Cheng authored
Teach isSafeToClobberEFLAGS to ignore dbg_value's. We need a MachineBasicBlock::iterator that does this automatically? llvm-svn: 99320
-
Daniel Dunbar authored
MC: Add TargetAsmBackend::MayNeedRelaxation, for checking whether a particular instruction + fixups might need relaxation. llvm-svn: 99249
-
Daniel Dunbar authored
MC: Add TargetAsmBackend::WriteNopData and use to eliminate some target dependencies in MCMachOStreamer and MCAssembler. llvm-svn: 99248
-
Daniel Dunbar authored
llvm-svn: 99245
-
- Mar 20, 2010
-
-
Daniel Dunbar authored
MC/X86: Fix an MCOperand link, when we parsing shrld $1,%eax and friends; I believe this fixes the last memory leaks under test/MC. llvm-svn: 99102
-
Daniel Dunbar authored
llvm-svn: 99097
-
Evan Cheng authored
caller, then it is not safe to optimize the call into a sibcall since the call result has to be popped off the x87 stack. llvm-svn: 99032
-
- Mar 19, 2010
-
-
Chris Lattner authored
that they are dead. llvm-svn: 99000
-
Kevin Enderby authored
override prefix and only the r/m16 forms should have had that. Also for variant one, the AT&T syntax, added suffixes to all forms. Also added the missing 64-bit form for 'CRC32 r64, r/m8'. Plus added test cases for all forms and tweaked one test case to add the needed suffixes. llvm-svn: 98980
-
Daniel Dunbar authored
MC/X86: Rename alternate spellings of {ADD64,CMP64} and mark as "code gen only" so they don't get selected by the asm matcher. llvm-svn: 98972
-
Daniel Dunbar authored
- MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF. llvm-svn: 98955
-
Daniel Dunbar authored
llvm-svn: 98954
-
Daniel Dunbar authored
llvm-svn: 98950
-