- Sep 09, 2011
-
-
Craig Topper authored
Fix handling of Intel syntax disassembling of movs and stos to stop being blank. Also fixed scas, and cmps to always print size suffix in Intel syntax since its abiguous without arguments. Fixes PR10875. llvm-svn: 139353
-
Nadav Rotem authored
llvm-svn: 139324
-
- Sep 08, 2011
-
-
Bruno Cardoso Lopes authored
triggered using llc with -O0, which wouldn't let it be folded and expose the lack of this pattern. llvm-svn: 139320
-
Bruno Cardoso Lopes authored
single field (Flags), which is a bitwise OR of items from the TB_* enum. This makes it easier to add new information in the future. * Gives every static array an equivalent layout: { RegOp, MemOp, Flags } * Adds a helper function, AddTableEntry, to avoid duplication of the insertion code. * Renames TB_NOT_REVERSABLE to TB_NO_REVERSE. * Adds TB_NO_FORWARD, which is analogous to TB_NO_REVERSE, except that it prevents addition of the Reg->Mem entry. (This is going to be used by Native Client, in the next CL). Patch by David Meyer llvm-svn: 139311
-
Bruno Cardoso Lopes authored
in Nadav's r139285 and r139287 commits. 1) Rename vsel.ll to a more descriptive name 2) Change the order of BLEND operands to "Op1, Op2, Cond", this is necessary because PBLENDVB is already used in different places with this order, and it was being emitted in the wrong way for vselect 3) Add AVX patterns and tests for the same SSE41 instructions llvm-svn: 139305
-
Bruno Cardoso Lopes authored
Triggered using llc -O0. Also fix some SET0PS patterns to their AVX forms and test it on the testcase. llvm-svn: 139304
-
Nadav Rotem authored
llvm-svn: 139285
-
- Sep 07, 2011
-
-
Eli Friedman authored
Fix atomic load and store on x86 to pass -verify-machineinstrs (and possibly fix some subtle bugs involving passes which check mayStore()). This isn't exactly ideal, but it is good enough for the moment. llvm-svn: 139245
-
James Molloy authored
Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson. llvm-svn: 139237
-
Rafael Espindola authored
(not assert) early. llvm-svn: 139233
-
Bill Wendling authored
information for older linkers. llvm-svn: 139206
-
- Sep 06, 2011
-
-
Rafael Espindola authored
llvm-svn: 139161
-
Duncan Sands authored
with a vector condition); such selects become VSELECT codegen nodes. This patch also removes VSETCC codegen nodes, unifying them with SETCC nodes (codegen was actually often using SETCC for vector SETCC already). This ensures that various DAG combiner optimizations kick in for vector comparisons. Passes dragonegg bootstrap with no testsuite regressions (nightly testsuite as well as "make check-all"). Patch mostly by Nadav Rotem. llvm-svn: 139159
-
Rafael Espindola authored
llvm-svn: 139154
-
Duncan Sands authored
init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das. llvm-svn: 139140
-
- Sep 05, 2011
-
-
Nick Lewycky authored
instructions are more aligned than the CPU requires, and adds some additional directives, to follow in future patches. Patch by David Meyer! llvm-svn: 139125
-
- Sep 03, 2011
-
-
Benjamin Kramer authored
llvm-svn: 139079
-
Bruno Cardoso Lopes authored
the cycle of missing AVX counterparts of already present SSE* patterns llvm-svn: 139073
-
Bruno Cardoso Lopes authored
llvm-svn: 139072
-
Bruno Cardoso Lopes authored
llvm-svn: 139071
-
Bruno Cardoso Lopes authored
llvm-svn: 139070
-
Bruno Cardoso Lopes authored
llvm-svn: 139069
-
Bruno Cardoso Lopes authored
duplicate it for AVX mode. llvm-svn: 139068
-
Bruno Cardoso Lopes authored
llvm-svn: 139067
-
Bruno Cardoso Lopes authored
that the AVX versions (even the 128-bit ones) all clear the upper part of the destination register. llvm-svn: 139066
-
Bruno Cardoso Lopes authored
pattern should be matched llvm-svn: 139065
-
Bruno Cardoso Lopes authored
llvm-svn: 139064
-
Bruno Cardoso Lopes authored
it! llvm-svn: 139063
-
Bruno Cardoso Lopes authored
llvm-svn: 139062
-
Bruno Cardoso Lopes authored
llvm-svn: 139061
-
Bruno Cardoso Lopes authored
OptForSize pattern llvm-svn: 139060
-
Jakob Stoklund Olesen authored
The explanation about a 0 argument being materialized as xor is no longer valid. Rematerialization will check if EFLAGS is live before clobbering it. The code produced by X86TargetLowering::EmitLoweredSelect does not clobber EFLAGS. This causes one less testb instruction to be generated in the cmov.ll test case. llvm-svn: 139057
-
Jakob Stoklund Olesen authored
It is only allowed to clobber EFLAGS at the end of a block if it isn't live-in to any successor. llvm-svn: 139056
-
Jakob Stoklund Olesen authored
llvm-svn: 139055
-
Jakob Stoklund Olesen authored
llvm-svn: 139047
-
Eli Friedman authored
llvm-svn: 139044
-
- Sep 02, 2011
-
-
Kevin Enderby authored
case those instructions that the immediate is not sign-extend. radr://8795217 llvm-svn: 139028
-
Bill Wendling authored
llvm-svn: 139018
-
- Sep 01, 2011
-
-
Bruno Cardoso Lopes authored
only one use. Fix PR10825. llvm-svn: 138951
-
- Aug 31, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 138897
-