summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/MBlaze/MBlazeDelaySlotFiller.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove the mblaze backend from llvm.Rafael Espindola2013-07-251-252/+0
| | | | | | Approval in here http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064169.html llvm-svn: 187145
* Don't cache the instruction and register info from the TargetMachine, becauseBill Wendling2013-06-071-4/+2
| | | | | | the internals of TargetMachine could change. llvm-svn: 183491
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-2/+2
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* 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