1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 08:23:21 +01:00
Commit Graph

62145 Commits

Author SHA1 Message Date
Dan Gohman
0c7d7ee288 Fix MachineLICM to actually visit inner loops.
llvm-svn: 108001
2010-07-09 18:49:45 +00:00
Bruno Cardoso Lopes
3676e24b67 Start the support for AVX instructions with 256-bit %ymm registers. A couple of
notes:
- The instructions are being added with dummy placeholder patterns using some 256
  specifiers, this is not meant to work now, but since there are some multiclasses
  generic enough to accept them,  when we go for codegen, the stuff will be already
  there.
- Add VEX encoding bits to support YMM
- Add MOVUPS and MOVAPS in the first round
- Use "Y" as suffix for those Instructions: MOVUPSYrr, ...
- All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX
  file.

llvm-svn: 107996
2010-07-09 18:27:43 +00:00
Jakob Stoklund Olesen
ccd252ca08 Change TII::foldMemoryOperand API to require the machine instruction to be
inserted in a MBB, and return an already inserted MI.

This target API change is necessary to allow foldMemoryOperand to call
storeToStackSlot and loadFromStackSlot when folding a COPY to a stack slot
reference in a target independent way.

The foldMemoryOperandImpl hook is going to change in the same way, but I'll wait
until COPY folding is actually implemented. Most targets only fold copies and
won't need to specialize this hook at all.

llvm-svn: 107991
2010-07-09 17:29:08 +00:00
Gabor Greif
e0e7111f4e cache result of operator*
llvm-svn: 107990
2010-07-09 16:51:20 +00:00
Gabor Greif
0a544667f8 remove useless cast and fix typos in comment
llvm-svn: 107989
2010-07-09 16:42:04 +00:00
Gabor Greif
a2c75f904d cache result of operator*
llvm-svn: 107988
2010-07-09 16:39:02 +00:00
Bob Wilson
9e8c9204ef --- Reverse-merging r107947 into '.':
U    utils/TableGen/FastISelEmitter.cpp
--- Reverse-merging r107943 into '.':
U    test/CodeGen/X86/fast-isel.ll
U    test/CodeGen/X86/fast-isel-loads.ll
U    include/llvm/Target/TargetLowering.h
U    include/llvm/Support/PassNameParser.h
U    include/llvm/CodeGen/FunctionLoweringInfo.h
U    include/llvm/CodeGen/CallingConvLower.h
U    include/llvm/CodeGen/FastISel.h
U    include/llvm/CodeGen/SelectionDAGISel.h
U    lib/CodeGen/LLVMTargetMachine.cpp
U    lib/CodeGen/CallingConvLower.cpp
U    lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
U    lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
U    lib/CodeGen/SelectionDAG/FastISel.cpp
U    lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
U    lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
U    lib/CodeGen/SelectionDAG/InstrEmitter.cpp
U    lib/CodeGen/SelectionDAG/TargetLowering.cpp
U    lib/Target/XCore/XCoreISelLowering.cpp
U    lib/Target/XCore/XCoreISelLowering.h
U    lib/Target/X86/X86ISelLowering.cpp
U    lib/Target/X86/X86FastISel.cpp
U    lib/Target/X86/X86ISelLowering.h

llvm-svn: 107987
2010-07-09 16:37:18 +00:00
Gabor Greif
4d1241bddb cache result of operator*
llvm-svn: 107984
2010-07-09 16:31:08 +00:00
Gabor Greif
fc355ccebb cache result of operator*
llvm-svn: 107983
2010-07-09 16:26:41 +00:00
Gabor Greif
e249fc8808 cache result of operator*
llvm-svn: 107982
2010-07-09 16:22:36 +00:00
Gabor Greif
9259059af3 cache result of operator*
llvm-svn: 107981
2010-07-09 16:17:52 +00:00
Gabor Greif
7ac6b2bae4 cache result of operator*
llvm-svn: 107980
2010-07-09 16:08:33 +00:00
Gabor Greif
1674456c37 cache result of operator*
llvm-svn: 107979
2010-07-09 16:01:21 +00:00
Gabor Greif
1277447002 cache result of operator*
llvm-svn: 107978
2010-07-09 15:53:42 +00:00
Gabor Greif
9096841571 cache result of operator*
llvm-svn: 107977
2010-07-09 15:52:36 +00:00
Gabor Greif
6184b1a2fa cache result of operator*
llvm-svn: 107976
2010-07-09 15:40:10 +00:00
Gabor Greif
4d54dede01 cache result of operator*
llvm-svn: 107975
2010-07-09 15:25:42 +00:00
Gabor Greif
dcaa85787c cache result of operator*
llvm-svn: 107974
2010-07-09 15:25:09 +00:00
Gabor Greif
72d36e30a0 cache result of operator*
llvm-svn: 107972
2010-07-09 15:01:36 +00:00
Gabor Greif
00ab305f37 cache result of operator* (found by inspection)
llvm-svn: 107971
2010-07-09 14:48:08 +00:00
Gabor Greif
4d880ebd36 fix clang selfhost issue (shadowing)
llvm-svn: 107970
2010-07-09 14:46:49 +00:00
Gabor Greif
9ac508494f cache result of operator*
llvm-svn: 107969
2010-07-09 14:36:49 +00:00
Gabor Greif
a9fbbe2dbb cache result of operator*
llvm-svn: 107968
2010-07-09 14:29:14 +00:00
Gabor Greif
6c80602356 cache result of operator*
llvm-svn: 107967
2010-07-09 14:28:41 +00:00
Gabor Greif
a5fdd0955d cache result of operator*
llvm-svn: 107966
2010-07-09 14:18:23 +00:00
Gabor Greif
cda479a708 cache operator*'s result (in multiple functions)
llvm-svn: 107965
2010-07-09 14:02:13 +00:00
Gabor Greif
0da64e7003 refactor type expressions and cache operator*'s result
llvm-svn: 107964
2010-07-09 14:00:56 +00:00
Gabor Greif
7bc80c7586 do not repeatedly dereference use_iterator
llvm-svn: 107963
2010-07-09 13:17:13 +00:00
Gabor Greif
9e2aa5d5d7 do not repeatedly dereference use_iterator
llvm-svn: 107962
2010-07-09 12:23:50 +00:00
Gabor Greif
17ddf2d1fa two more cases of reuse result of operator*, found by inspection
llvm-svn: 107961
2010-07-09 10:42:13 +00:00
Gabor Greif
01db29c828 another case of reuse result of operator*, it is expensive to recompute
llvm-svn: 107960
2010-07-09 10:32:31 +00:00
Gabor Greif
d266b0fcd8 reuse result of operator*, it is expensive to recompute
llvm-svn: 107959
2010-07-09 09:50:51 +00:00
Lang Hames
67f0ebc5c6 Added a support for inserting new MBBs into the numbering.
Unlike insertMachineInstrInMaps this does not guarantee live intervals will
remain correct. The caller will need to manually update intervals to account
for the changes made to the CFG.

llvm-svn: 107958
2010-07-09 09:19:23 +00:00
Jakob Stoklund Olesen
e0dcc33889 Avoid creating %physreg:subidx operands in SimpleRegisterCoalescing::RemoveCopyByCommutingDef.
This fixes PR7602.

llvm-svn: 107957
2010-07-09 05:56:21 +00:00
Jakob Stoklund Olesen
2be8142157 Deal with a few remaining spots that assume physical registers have live intervals.
This fixes PR7601.

llvm-svn: 107955
2010-07-09 04:35:38 +00:00
Bruno Cardoso Lopes
144923dccf Merge VEX enums with other x86 enum forms. Also fix all checks of which VEX
fields to use. 

llvm-svn: 107952
2010-07-09 01:56:45 +00:00
Jakob Stoklund Olesen
b4c406a101 Fix test to be less sensitive of regalloc accidents
llvm-svn: 107951
2010-07-09 01:32:11 +00:00
Jakob Stoklund Olesen
daef6696d5 Fix broken isCopy handling in TrimLiveIntervalToLastUse.
llvm-svn: 107950
2010-07-09 01:27:21 +00:00
Jakob Stoklund Olesen
7824ff3af8 Handle COPY in VirtRegRewriter.
llvm-svn: 107949
2010-07-09 01:27:19 +00:00
Dan Gohman
dad9d461c3 Fix the memoperand offsets in code generated for va_start.
llvm-svn: 107948
2010-07-09 01:06:48 +00:00
Dan Gohman
6a1edee90f These changes should have accompanied r107943.
llvm-svn: 107947
2010-07-09 00:59:16 +00:00
Chris Lattner
a5c1c795a2 have the mc lowering process handle a few tail call forms, lowering them to
jumps where possible and turning the TAILCALL marker in the instruction
asm string into a proper comment.

This eliminates a FIXME and is on the path to finishing:
rdar://7639610 - eliminate encoding and asm info for TAILJMPd TAILJMPr TAILJMPn, etc.

However, I can't eliminate the encodings for these instructions because the JIT
still exists and has its own copy of the encoder, sigh.

llvm-svn: 107946
2010-07-09 00:49:41 +00:00
Bob Wilson
f15e542bdc Print "dregpair" NEON operands with a space between them, for readability and
consistency with other instructions that have lists of register operands.

llvm-svn: 107944
2010-07-09 00:47:20 +00:00
Dan Gohman
7e6e4dd058 Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting
a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL.

llvm-svn: 107943
2010-07-09 00:39:23 +00:00
Bruno Cardoso Lopes
a6bfda61b9 Factor out x86 segment override prefix encoding, and also use it for VEX
llvm-svn: 107942
2010-07-09 00:38:14 +00:00
Bob Wilson
dd02fe62a2 Reenable DAG combining for vector shuffles. It looks like it was temporarily
disabled and then never turned back on again.  Adjust some tests, one because
this change avoids an unnecessary instruction, and the other to make it
continue testing what it was intended to test.

llvm-svn: 107941
2010-07-09 00:38:12 +00:00
Chris Lattner
fe434abafa reject pseudo instructions early in the encoder.
llvm-svn: 107939
2010-07-09 00:17:50 +00:00
Bruno Cardoso Lopes
f00a155876 Remove trailing whitespaces from file
llvm-svn: 107937
2010-07-09 00:07:19 +00:00
Chris Lattner
49ac65543c Change LEA to have 5 operands for its memory operand, just
like all other instructions, even though a segment is not
allowed.  This resolves a bunch of gross hacks in the 
encoder and makes LEA more consistent with the rest of the
instruction set.

No functionality change.

llvm-svn: 107934
2010-07-08 23:46:44 +00:00
Stuart Hastings
a3999081cf Reverting r107918 and r107919. Radar 8063111.
llvm-svn: 107930
2010-07-08 23:25:39 +00:00