summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/MBlaze/MBlazeDelaySlotFiller.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add bundle aware API for querying instruction properties and switch the codeEvan Cheng2011-12-071-9/+7
| | | | | | | | | | | | | | 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
* Move code into anonymous namespaces.Benjamin Kramer2011-11-261-3/+1
| | | | llvm-svn: 145154
* Rename a couple of options and fix some simple typos.Wesley Peck2011-11-261-2/+2
| | | | llvm-svn: 145152
* - 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
* Fix an error in the MBlaze delay slot filler.Wesley Peck2011-04-111-1/+1
| | | | llvm-svn: 129313
* Do not model all INLINEASM instructions as having unmodelled side effects.Evan Cheng2011-01-071-4/+3
| | | | | | | | | | Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. llvm-svn: 123044
* Fix a regression introduced into the MBlaze delay slot filler.Wesley Peck2010-12-221-6/+25
| | | | llvm-svn: 122379
* Fix MBlaze backend call instructions so that arguments passed through registersWesley Peck2010-12-161-1/+2
| | | | | | | are correctly marked as used. This removes a hack where the call instructions marked all possible argument registers as used in the tablegen description. llvm-svn: 121994
* MBlaze delay slot filler was not capable of using ADDK and variants to fill ↵Wesley Peck2010-12-121-1/+18
| | | | | | delay slots. This broke several test cases when 121649 was committed. This fixes the regression. llvm-svn: 121650
* Fix a 16-bit immediate value detection bug in the MBlaze delay slot filler.Wesley Peck2010-12-061-48/+86
| | | | | | | | Address more hazards in the MBlaze delay slot filler. patch contributed by Jack Whitham! llvm-svn: 121037
* Fix an error in the MBlaze delay slot filler where instructions that alreadyWesley Peck2010-11-211-16/+29
| | | | | | fill a delay slot are moved to fill a different delay slot. llvm-svn: 119949
* Adding working version of assembly parser for the MBlaze backendWesley Peck2010-11-081-28/+28
| | | | | | Major cleanup of whitespace and formatting issues in MBlaze backend llvm-svn: 118434
* Adding disassembler to the MicroBlaze backend.Wesley Peck2010-10-271-1/+2
| | | | llvm-svn: 117420
* Recommit 116986 with capitalization typo fixed.Wesley Peck2010-10-211-1/+96
| | | | llvm-svn: 116993
* Reverting the commit 116986. It was breaking the build on llvm-x86_64-linux ↵Wesley Peck2010-10-211-96/+1
| | | | | | | | | though it compiles on OS X. I'll ensure that it builds on a linux machine before committing again. llvm-svn: 116991
* Major update of the MicroBlaze backend. The new features are:Wesley Peck2010-10-211-1/+96
| | | | | | | | | | | | | | | | | | | | 1. A delay slot filler that searches for valid instructions to fill the delay slot with. Previously NOPs would always be inserted into delay slots. 2. Support for MC based instruction printer added. 3. Support for MC based machine code generation and ELF file generation. ELF file generation does not yet completely work as much of the ELF support infrastructure is still x86/x86-64 specific. 4. General clean up of the MBlaze backend code. Much of the tablegen code has been cleanup and simplified. Bug Fixes: 1. Removed duplicate periods from subtarget feature descriptions. 2. Many of the instructions had bad machine code information in the tablegen files. Much of this has been fixed. llvm-svn: 116986
* 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
* Adding the MicroBlaze backend.Wesley Peck2010-02-231-0/+75
The MicroBlaze is a highly configurable 32-bit soft-microprocessor for use on Xilinx FPGAs. For more information see: http://www.xilinx.com/tools/microblaze.htm http://en.wikipedia.org/wiki/MicroBlaze The current LLVM MicroBlaze backend generates assembly which can be compiled using the an appropriate binutils assembler. llvm-svn: 96969
OpenPOWER on IntegriCloud