summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [mips] Fix delay slot filler so that instructions with register operand $1 areAkira Hatanaka2012-11-161-17/+34
| | | | | | allowed in branch delay slot. llvm-svn: 168131
* Disable Mips' delay slot filler when optimization level is O0.Akira Hatanaka2012-08-241-1/+3
| | | | llvm-svn: 162589
* Add option disable-mips-delay-filler. Turn on mips' delay slot filler byAkira Hatanaka2012-08-221-4/+5
| | | | | | | | default. Patch by Carl Norum. llvm-svn: 162339
* Fix coding style violations. Remove white spaces and tabs.Akira Hatanaka2012-06-141-8/+8
| | | | llvm-svn: 158471
* Bundle jump/branch instructions with the instructions in the delay slot inAkira Hatanaka2012-06-131-16/+22
| | | | | | | | | 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
* Switch some getAliasSet clients to MCRegAliasIterator.Jakob Stoklund Olesen2012-06-011-7/+4
| | | | | | | MCRegAliasIterator can optionally visit the register itself, allowing for simpler code. llvm-svn: 157837
* Add a command line option to skip the delay slot filler pass entirely for Mips.Akira Hatanaka2012-05-141-0/+10
| | | | | | | | | | The purpose of this option is to silence error messages issued by machine verifier passes and enable them to run to the end. If this option is not provided, -verify-machineinstrs complains when it discovers there is a non-terminator instruction (an instruction that is in a delay slot) after the first terminator in a basic block. llvm-svn: 156790
* Use uint16_t to store register overlaps to reduce static data.Craig Topper2012-03-041-1/+1
| | | | llvm-svn: 152001
* remove blanks, and some code formatJia Liu2012-02-281-4/+4
| | | | llvm-svn: 151625
* remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.Jia Liu2012-02-171-1/+1
| | | | llvm-svn: 150805
* add Emacs tag and fix some comment error in file headersJia Liu2012-02-171-1/+1
| | | | llvm-svn: 150775
* Tidy up. Simplify logic. No functional change intended.Akira Hatanaka2011-12-191-4/+2
| | | | llvm-svn: 146896
* Add bundle aware API for querying instruction properties and switch the codeEvan Cheng2011-12-071-9/+8
| | | | | | | | | | | | | | generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026
* Fix assertion string.Akira Hatanaka2011-10-051-1/+1
| | | | llvm-svn: 141197
* Make sure candidate for delay slot filler is not a return instruction.Akira Hatanaka2011-10-051-3/+5
| | | | llvm-svn: 141196
* Add RA to the set of registers that are defined if instruction is a call.Akira Hatanaka2011-10-051-4/+4
| | | | llvm-svn: 141194
* MipsDelaySlotFiller.cpp: Appease msvc to specify llvm::next() explicitly.NAKAMURA Takumi2011-10-051-1/+1
| | | | llvm-svn: 141174
* Insert space.Akira Hatanaka2011-10-051-1/+1
| | | | llvm-svn: 141158
* Do not examine variadic or implicit operands if instruction is a return (jr).Akira Hatanaka2011-10-051-2/+3
| | | | llvm-svn: 141157
* Clean up function Filler::delayHasHazard. Akira Hatanaka2011-10-051-4/+6
| | | | llvm-svn: 141156
* Remove function Filler::insertCallUses.Akira Hatanaka2011-10-051-29/+14
| | | | | | Record the registers used and defined by a call in Filler::insertDefsUses. llvm-svn: 141154
* Clean up Filler::findDelayInstr.Akira Hatanaka2011-10-051-15/+10
| | | | llvm-svn: 141152
* Remove function Filler::isDelayFiller. Check if I is the same instruction thatAkira Hatanaka2011-10-051-11/+7
| | | | | | filled the last delay slot visited. llvm-svn: 141151
* Clean up Filler::runOnMachineBasicBlock. Change interface ofAkira Hatanaka2011-10-051-17/+20
| | | | | | Filler::findDelayInstr. llvm-svn: 141150
* Define a statistic for the number of slots that were filled with useful Akira Hatanaka2011-10-051-0/+2
| | | | | | instructions (instructions that are not NOP). llvm-svn: 141149
* Remove unnecessary check. isDelayFiller(MBB, I) will evaluate to true beforeAkira Hatanaka2011-10-051-1/+0
| | | | | | I->getDesc().hasDelaySlot() does. llvm-svn: 141148
* Add comments and move assignment statement. If sawStore is true, sawLoad doesAkira Hatanaka2011-10-051-1/+3
| | | | | | not have to be set. llvm-svn: 141147
* Correct description string of enable-mips-delay-filler.Akira Hatanaka2011-10-051-1/+1
| | | | llvm-svn: 141146
* Fill delay slot with useful instructions. Modified from Sparc's version of delayAkira Hatanaka2011-09-291-12/+201
| | | | | | | | slot filler. Patch by Reed Kotler at Mips Technologies. llvm-svn: 140825
* Drop support for Mips1 and Mips2.Akira Hatanaka2011-09-091-3/+1
| | | | llvm-svn: 139405
* - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo andEvan Cheng2011-06-281-3/+3
| | | | | | | | sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. llvm-svn: 134021
* Reverse unnecessary changes made in r129606 and r129608. There is no change ↵Akira Hatanaka2011-04-151-2/+2
| | | | | | in functionality. llvm-svn: 129612
* Fix lines that have incorrect indentation or exceed 80 columns. There is no ↵Akira Hatanaka2011-04-151-2/+2
| | | | | | change in functionality. llvm-svn: 129606
* Fix delay slot filler for non mips1 targets. Patch by Akira HatanakaBruno Cardoso Lopes2010-12-091-5/+9
| | | | llvm-svn: 121376
* Initial support for Mips32 and Mips32r2. Patch contributed by Akira Hatanaka ↵Bruno Cardoso Lopes2010-11-081-1/+2
| | | | | | (ahatanaka@mips.com) llvm-svn: 118447
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-061-1/+1
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-061-1/+1
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-051-1/+1
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Remove non-DebugLoc versions of BuildMI from IA64, Mips.Dale Johannesen2009-02-131-1/+1
| | | | llvm-svn: 64438
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner2008-01-071-1/+1
| | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
* Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflectsChris Lattner2008-01-071-1/+1
| | | | | | | | | | | | | | | that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* A Pass to insert Nops on intructions with DelaySlotBruno Cardoso Lopes2007-08-181-0/+77
llvm-svn: 41150
OpenPOWER on IntegriCloud