Akira Hatanaka
d1b2b96ed5
1. introduce MipsPat in place of Pat in order to exclude those from
...
being used by Mips16 or Micro Mips
2. clean up a few lines too long encountered
Patch by Reed Kotler.
llvm-svn: 158470
2012-06-14 21:03:23 +00:00
Akira Hatanaka
93c5168e49
Make machine verifier check the first instruction of the last bundle instead of
...
the last instruction of a basic block.
llvm-svn: 158468
2012-06-14 20:51:13 +00:00
Lang Hames
a4512782f7
Make comment slightly more helpful.
...
llvm-svn: 158467
2012-06-14 20:37:15 +00:00
Pete Cooper
75c1521e67
Revert r158454: Allow SROA to look at a vector type... Its breaking the vectorise buildbot
...
This reverts commit 12c1f86ffa731e2952c80d2cc577000c96b8962c.
llvm-svn: 158462
2012-06-14 18:32:52 +00:00
Andrew Trick
bef78f6714
misched: disable SSA check pending PR13112.
...
llvm-svn: 158461
2012-06-14 17:48:49 +00:00
Stepan Dyatkovskiy
bb6d2dc9da
SmallMap, FlatArrayMap::copyFrom
...
Replaced memcpy with std::copy, since the first one may work improperly with non POD data.
llvm-svn: 158457
2012-06-14 16:59:43 +00:00
David Blaikie
51b8e0f412
Remove/modify C backend references from LLVM documentation.
...
Patch by Wei-Ren Chen.
llvm-svn: 158456
2012-06-14 16:52:55 +00:00
David Blaikie
4194d74903
Remove C backend reference from the FAQ.
...
llvm-svn: 158455
2012-06-14 16:43:11 +00:00
Pete Cooper
8bba872141
Recommit r158407: Allow SROA to look at a vector type and see if the offset is out of range to be replaced with a scalar access. Now with additional fix and test for indexing into a vector inside a struct
...
llvm-svn: 158454
2012-06-14 16:38:13 +00:00
Duncan Sands
36ade32369
Clarify a bit that the types have to be the same. Came up on IRC.
...
llvm-svn: 158453
2012-06-14 14:58:28 +00:00
NAKAMURA Takumi
cf2652ae8c
MipsLongBranch.cpp: Tweak llvm::next() to appease msvc.
...
llvm-svn: 158446
2012-06-14 12:29:48 +00:00
Richard Barton
2a7d06a53e
Replace assertion failure for badly formatted CPS instrution with error message.
...
llvm-svn: 158445
2012-06-14 10:48:04 +00:00
Jush Lu
6dd02e5fe3
Cleanup whitespace.
...
llvm-svn: 158443
2012-06-14 06:08:19 +00:00
Manman Ren
797e146fae
Revert: test/CodeGen/ARM/iabs.ll in r158441
...
Sorry that I accidently checked in this file with my previous commit.
llvm-svn: 158442
2012-06-14 06:04:02 +00:00
Manman Ren
e3471c0bdf
InstCombine: fix a bug when combining (fcmp cc0 x, y) && (fcmp cc1 x, y).
...
uno && ueq was converted to ueq, it should be converted to uno.
llvm-svn: 158441
2012-06-14 05:57:42 +00:00
Akira Hatanaka
1d6b061ade
Test case for MIPS long branch pass.
...
llvm-svn: 158438
2012-06-14 02:12:21 +00:00
Akira Hatanaka
012069bb89
Fix Mips/CMakeLists.txt.
...
llvm-svn: 158437
2012-06-14 01:23:55 +00:00
Akira Hatanaka
70ebace503
Add file MipsLongBranch.cpp.
...
llvm-svn: 158436
2012-06-14 01:22:24 +00:00
Akira Hatanaka
6bdcfb22d7
Fix test cases.
...
llvm-svn: 158435
2012-06-14 01:21:00 +00:00
Akira Hatanaka
7ea45292fb
Remove code in MipsAsmPrinter and MipsMCInstLower.
...
llvm-svn: 158434
2012-06-14 01:20:12 +00:00
Akira Hatanaka
0d20b51ff7
Add long branch expansion pass for MIPS.
...
llvm-svn: 158433
2012-06-14 01:19:35 +00:00
Akira Hatanaka
19512459e6
Add AT to the list of registers clobbered by branches so that it is available
...
as a scratch register when they are expanded to long branches.
llvm-svn: 158432
2012-06-14 01:17:59 +00:00
Akira Hatanaka
fb3c87c739
In MipsRegisterInfo::eliminateFrameIndex, call Mips::loadImmediate
...
to load an immediate that does not fit into 16-bit.
llvm-svn: 158431
2012-06-14 01:17:36 +00:00
Akira Hatanaka
415903692b
In MipsFrameLowering::emitPrologue and emitEpilogue, call Mips::loadImmediate
...
to load an immediate that does not fit into 16-bit. Also, take into
consideration the global base register slot on the stack when computing the
stack size.
llvm-svn: 158430
2012-06-14 01:17:13 +00:00
Akira Hatanaka
8f2f845215
Define function MipsInstrInfo::GetInstSizeInBytes, which will be called to
...
compute the size of basic blocks in a function. Also, define a function which
emits a series of instructions to load an immediate.
llvm-svn: 158429
2012-06-14 01:16:45 +00:00
Akira Hatanaka
afa4622baf
In MipsISelDAGToDAG.cpp, store the global base register to a stack frame object.
...
Long-branches need access to the global base register to get the destination
address.
llvm-svn: 158428
2012-06-14 01:16:15 +00:00
Akira Hatanaka
2784db9e87
Add methods to MipsFunctionInfo for initializing and accessing the stack frame
...
object for the global base register.
This is the first of a series of patches which implements long branch expansion
for MIPS.
llvm-svn: 158427
2012-06-14 01:15:36 +00:00
Akira Hatanaka
2f3e3d6ece
Bundle jump/branch instructions with the instructions in the delay slot in
...
delay slot filler pass of MIPS, per suggestion of Jakob Stoklund Olesen.
This change, along with the fix in r158154, enables machine verification
to be run after delay slot filling.
llvm-svn: 158426
2012-06-13 23:25:52 +00:00
Chandler Carruth
e63fe55776
Group the 'unsigned' members after the pointer to avoid 4 bytes of
...
padding on x86-64.
llvm-svn: 158421
2012-06-13 21:44:07 +00:00
Akira Hatanaka
0435101a38
Implement a DAGCombine in MipsISelLowering.cpp which transforms the following
...
pattern:
(add v0, (add v1, abs_lo(tjt))) => (add (add v0, v1), abs_lo(tjt))
"tjt" is a TargetJumpTable node.
llvm-svn: 158419
2012-06-13 20:33:18 +00:00
Akira Hatanaka
fef6359b1c
Set a higher value for maxStoresPerMemcpy in MipsISelLowering.cpp.
...
llvm-svn: 158414
2012-06-13 19:33:32 +00:00
Akira Hatanaka
cf4210f6d7
Simplify CreateLoadLR and CreateStoreLR in MipsISelLowering.cpp.
...
llvm-svn: 158413
2012-06-13 19:06:08 +00:00
Akira Hatanaka
25f2f1feba
Implement fastcc calling convention for MIPS.
...
llvm-svn: 158410
2012-06-13 18:06:00 +00:00
Richard Osborne
96c0be7351
Fix pattern for MKMSK instruction.
...
llvm-svn: 158409
2012-06-13 17:59:12 +00:00
Pete Cooper
ce49530fba
Revert "Allow SROA to look at a vector type and see if the offset is out of range to be replaced with a scalar access"
...
This reverts commit 51786e0aaec76b973205066bd44f7f427b21969f.
llvm-svn: 158408
2012-06-13 17:55:22 +00:00
Pete Cooper
efba533f47
Allow SROA to look at a vector type and see if the offset is out of range to be replaced with a scalar access
...
llvm-svn: 158407
2012-06-13 17:30:34 +00:00
Argyrios Kyrtzidis
7345b735e8
Fix building ThreadLocal.cpp with --disable-threads.
...
llvm-svn: 158405
2012-06-13 16:30:06 +00:00
Kay Tiong Khoo
b631f7fd59
*typo: Cyles changed to Cycles
...
llvm-svn: 158404
2012-06-13 15:53:04 +00:00
Rafael Espindola
a0d94f4f75
Use LTO_CODEGEN_PIC_MODEL_DYNAMIC for PIE. This requirest a git version of
...
gold to work. Since the enum value LDPO_PIE has just been added to plugin-api.h,
use a numeric constant for now so that we don't require an unreleased
version of gold to build.
llvm-svn: 158402
2012-06-13 13:30:24 +00:00
Duncan Sands
d3ece28940
It is possible for several constants which aren't individually absorbing to
...
combine to the absorbing element. Thanks to nbjoerg on IRC for pointing this
out.
llvm-svn: 158399
2012-06-13 12:15:56 +00:00
Duncan Sands
5f04c03e66
When linearizing a multiplication, return at once if we see a factor of zero,
...
since then the entire expression must equal zero (similarly for other operations
with an absorbing element). With this in place a bunch of reassociate code for
handling constants is dead since it is all taken care of when linearizing. No
intended functionality change.
llvm-svn: 158398
2012-06-13 09:42:13 +00:00
Craig Topper
b2299168d3
Fix intrinsics for XOP frczss/sd instructions. These instructions only take one source register and zero the upper bits of the destination rather than preserving them.
...
llvm-svn: 158396
2012-06-13 07:18:53 +00:00
Hal Finkel
021ce0f07b
Add another missing 64-bit itinerary definition for the PPC A2 core.
...
llvm-svn: 158393
2012-06-13 05:55:09 +00:00
Manman Ren
d462a5158d
SimplifyCFG: fold unconditional branch to its predecessor if profitable.
...
This patch extends FoldBranchToCommonDest to fold unconditional branches.
For unconditional branches, we fold them if it is easy to update the phi nodes
in the common successors.
rdar://10554090
llvm-svn: 158392
2012-06-13 05:43:29 +00:00
Jakob Stoklund Olesen
3815bb6f62
Eliminate struct TableGenBackend.
...
TableGen backends are simply written as functions now.
Patch by Sean Silva!
llvm-svn: 158389
2012-06-13 05:15:49 +00:00
Akira Hatanaka
36f518fd08
Clean up trailing blanks in Mips16InstrFormats.td
...
Patch by Reed Kotler.
llvm-svn: 158382
2012-06-13 02:42:47 +00:00
Akira Hatanaka
c118cf7c71
disable use of directive .set nomicromips
...
until this directive is pushed in gas to open source fsf
Patch by Reed Kotler.
llvm-svn: 158381
2012-06-13 02:41:14 +00:00
Andrew Trick
1115f0067a
sched: fix latency of memory dependence chain edges for consistency.
...
For store->load dependencies that may alias, we should always use
TrueMemOrderLatency, which may eventually become a subtarget hook. In
effect, we should guarantee at least TrueMemOrderLatency on at least
one DAG path from a store to a may-alias load.
This should fix the standard mode as well as -enable-aa-sched-mi".
llvm-svn: 158380
2012-06-13 02:39:03 +00:00
Andrew Trick
858cf20add
sched: Avoid trivially redundant DAG edges. Take the one with higher latency.
...
llvm-svn: 158379
2012-06-13 02:39:00 +00:00
Akira Hatanaka
7e0382b71e
1. fix places where immed is used in place of imm to be consistent with
...
non mips16
2. fix some comments to change OPcode->EXTEND for extended instructions
Patch by Reed Kotler.
llvm-svn: 158378
2012-06-13 02:37:54 +00:00