Daniel Sanders
37463f7259
[mips][sched] Split IIStore into II_S[BHWD], II_S[WD][LR], and II_SAVE
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199876
2014-01-23 10:31:31 +00:00
Daniel Sanders
0b385ac138
[mips][sched] Split IILoad into II_L[BHWD], II_L[BHW]U, II_L[WD][LR], and II_RESTORE
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199749
2014-01-21 15:21:14 +00:00
Daniel Sanders
3d345b11c8
[mips][sched] Split IIFmoveC1 into II_M[FT]C1, II_M[FT]HC1, II_DM[FT]C1
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199748
2014-01-21 15:03:52 +00:00
Daniel Sanders
bf8aa22902
[mips][sched] Split IIFStore into II_S[WD]C1, and II_S[WDU]XC1
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199747
2014-01-21 14:50:20 +00:00
Daniel Sanders
7741274534
[mips][sched] Split IIFLoad into II_L[WD]C1, and II_L[WDU]XC1
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199743
2014-01-21 13:59:56 +00:00
Daniel Sanders
7af732c915
[mips][sched] Removed IIFrecipFsqrtStep. No instructions use it.
...
llvm-svn: 199742
2014-01-21 13:45:41 +00:00
Daniel Sanders
3424067527
[mips][sched] Renamed II_FsqrtSingle and II_FsqrtDouble to II_SQRT_S and II_SQRT_D respectively
...
No functional change
llvm-svn: 199741
2014-01-21 13:36:45 +00:00
Daniel Sanders
072f60f0dc
[mips][sched] Renamed II_FdivSingle and II_FdivDouble to II_DIV_S and II_DIV_D respectively
...
No functional change
llvm-svn: 199738
2014-01-21 13:22:08 +00:00
Daniel Sanders
2ce72b061c
[mips][sched] Split IIFmulDouble into II_MUL_D, II_MADD_D, II_MSUB_D, II_NMADD_D, and II_NMSUB_S
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199737
2014-01-21 13:07:31 +00:00
Daniel Sanders
47b4b6dd78
[mips][sched] Split IIFmulSingle into II_MUL_S, II_MADD_S, II_MSUB_S, II_NMADD_S, and II_NMSUB_S
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199734
2014-01-21 12:51:44 +00:00
Daniel Sanders
4bf6078841
[mips][sched] Split IIFadd into II_ADD_[DS], II_SUB_[DS]
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199732
2014-01-21 12:38:07 +00:00
Daniel Sanders
b8013baf8f
[mips][sched] Split IIFcmp into II_C_CC_[SD]
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199728
2014-01-21 11:42:48 +00:00
Daniel Sanders
f5fb34137e
[mips][sched] Split IIFmove into II_C[FT]C1, II_MOV[FNTZ]_[SD], II_MOV_[SD]
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199727
2014-01-21 11:28:03 +00:00
Daniel Sanders
555f4c5672
[mips][sched] Split IIFcvt into II_(ROUND|TRUNC|CEIL|FLOOR|CVT), II_ABS, II_NEG
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199722
2014-01-21 10:56:23 +00:00
Daniel Sanders
298ad0f277
[mips][sched] Split IIslt into II_SLT_SLTU, II_SLTI_SLTIU
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199719
2014-01-21 10:42:13 +00:00
Daniel Sanders
c7a9f8d298
[mips] Split IIIdiv int II_DIV, II_DIVU, II_DDIV, and II_DDIVU
...
No functional change since the InstrItinData's were duplicated
llvm-svn: 199497
2014-01-17 14:48:06 +00:00
Daniel Sanders
e95a137b96
[mips][sched] Split IIImul and IIImult into subclasses.
...
IIImul -> II_MUL
IIImult -> II_MULT, II_MULTU, II_MADD, II_MADDU, II_MSUB, II_MSUBU, II_DMULT, II_DMULTU
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199495
2014-01-17 14:32:41 +00:00
Daniel Sanders
9342557ea7
[mips][sched] Split IIHiLo into II_MFHI_MFLO and II_MTHI_MTLO
...
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199493
2014-01-17 14:17:34 +00:00
Daniel Sanders
59f991505c
[mips][sched] Removed IIXfer. No instructions use it.
...
llvm-svn: 199403
2014-01-16 17:23:08 +00:00
Daniel Sanders
4d20f0c00f
[mips][sched] Split IIseb into II_SEB and II_SEH
...
No functional change since there are no InstrItinData's.
llvm-svn: 199396
2014-01-16 16:19:38 +00:00
Daniel Sanders
306ef07b8d
[mips][sched] Split IILogic into II_AND, II_OR, II_XOR, II_ANDI, II_ORI, II_XORI
...
This is necessary because the classes are shared between all implementations.
No functional change since the InstrItinData's have been duplicated.
llvm-svn: 199394
2014-01-16 15:57:05 +00:00
Daniel Sanders
980589a803
[mips][sched] Split IIArith in preparation for the first scheduler targeting a specific MIPS CPU.
...
IIArith -> II_ADD, II_ADDU, II_AND, II_CL[ZO], II_DADDIU, II_DADDU,
II_DROTR, II_DROTR32, II_DROTRV, II_DSLL, II_DSLL32, II_DSLLV,
II_DSR[AL], II_DSR[AL]32, II_DSR[AL]V, II_DSUBU, II_LUI, II_MOV[ZFNT],
II_NOR, II_OR, II_RDHWR, II_ROTR, II_ROTRV, II_SLL, II_SLLV, II_SR[AL],
II_SR[AL]V, II_SUBU, II_XOR
No functional change since the InstrItinData's have been duplicated.
This is necessary because the classes are shared between all schedulers.
Once this patch series is committed there will be an InstrItinClass for
each mnemonic with minimal grouping. This does increase the size of the
itinerary tables for each MIPS scheduler but we have a few options for dealing
with that later. These options include reducing the number of classes once
we see the best way to simplify them, or by extending tablegen to be able
to compress the table by eliminating duplicates entries, etc.
llvm-svn: 199391
2014-01-16 14:27:20 +00:00
Daniel Sanders
818058b2ab
[mips] IIImult should have an InstrItinData in the generic scheduler. Used the same one as for IIImul.
...
Affects:
DMULT, DMULTu, MADD, MADD_MM, MADDU, MADDU_MM, MSUB, MSUB_MM, MSUBU,
MSUBU_MM, MULT, MULTu
Does not affect MULT_MM, MULTu_MM since they are currently miscategorised
as IIImul.
llvm-svn: 199381
2014-01-16 13:45:53 +00:00
Akira Hatanaka
f8fff213d5
[mips] Define instruction itineraries IIArith and IILogic.
...
No functionality change.
llvm-svn: 187468
2013-07-31 00:55:34 +00:00
Akira Hatanaka
1baf2ea2d1
[mips] Add instruction itinerary classes for mult, seb and slt instructions.
...
llvm-svn: 186222
2013-07-12 22:43:20 +00:00
Akira Hatanaka
b34ad7860f
[mips] Add new InstrItinClasses for move from/to coprocessor instructions and
...
floating point loads and stores.
No changes in functionality.
llvm-svn: 185399
2013-07-02 00:00:02 +00:00
Jia Liu
f54f60f3ce
remove blanks, and some code format
...
llvm-svn: 151625
2012-02-28 07:46:26 +00:00
Akira Hatanaka
e24891251c
Reverse unnecessary changes made in r129606 and r129608. There is no change in functionality.
...
llvm-svn: 129612
2011-04-15 21:51:11 +00:00
Akira Hatanaka
aef55c8801
Fix lines that have incorrect indentation or exceed 80 columns. There is no change in functionality.
...
llvm-svn: 129606
2011-04-15 21:00:26 +00:00
Bruno Cardoso Lopes
ed874eff93
Remove (hopefully) all trailing whitespaces from the mips backend. Patch by Hatanaka, Akira
...
llvm-svn: 127003
2011-03-04 17:51:39 +00:00
Evan Cheng
0097dd0d5a
Add support to model pipeline bypass / forwarding.
...
llvm-svn: 115005
2010-09-28 23:50:49 +00:00
Chris Lattner
72a364c107
fix emacs language spec's, patch by Edmund Grimley-Evans!
...
llvm-svn: 111241
2010-08-17 16:20:04 +00:00
Anton Korobeynikov
7d62e33291
Make processor FUs unique for given itinerary. This extends the limit of 32
...
FU per CPU arch to 32 per intinerary allowing precise modelling of quite
complex pipelines in the future.
llvm-svn: 101754
2010-04-18 20:31:01 +00:00
Chris Lattner
f3ebc3f3d2
Remove attribution from file headers, per discussion on llvmdev.
...
llvm-svn: 45418
2007-12-29 20:36:04 +00:00
Bruno Cardoso Lopes
415ded5d5a
Mips generic fallback instruction schedule support!
...
llvm-svn: 41149
2007-08-18 01:46:44 +00:00