summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/MSP430
Commit message (Collapse)AuthorAgeFilesLines
...
* call emitconstantpool and emitjumptable like other targets.Chris Lattner2010-01-261-0/+4
| | | | llvm-svn: 94601
* Eliminate SetDirective, and replace it with HasSetDirective.Chris Lattner2010-01-261-1/+0
| | | | | | | | | | | Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. llvm-svn: 94585
* add a new MachineBasicBlock::getSymbol method, replacingChris Lattner2010-01-262-2/+2
| | | | | | the AsmPrinter::GetMBBSymbol. llvm-svn: 94515
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-243-3/+0
| | | | llvm-svn: 94378
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-223-0/+4
| | | | | | | | | | | missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. llvm-svn: 94164
* revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner2010-01-201-2/+1
| | | | | | | stomache MCAsmInfo having this, and I found a better solution to this layering issue. llvm-svn: 93985
* give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner2010-01-191-1/+2
| | | | | | | | | I really want clients of the streamer to be able to say "emit this 64-bit integer" and have it get broken down right by the streamer. I may change this in the future, we'll see how it works out. llvm-svn: 93934
* Now that we have everything nicely factored (e.g. asmprinter is notChris Lattner2010-01-191-84/+0
| | | | | | | | | | | | | | | | | | | | | | | doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) llvm-svn: 93858
* remove the MAI argument to MCExpr::print and switch overthing to use << when ↵Chris Lattner2010-01-181-5/+3
| | | | | | printing them. llvm-svn: 93699
* now that MCSymbol::print doesn't use it's MAI argument, we can Chris Lattner2010-01-171-44/+17
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* eliminate uses of mangler and simplify code.Chris Lattner2010-01-161-12/+2
| | | | llvm-svn: 93615
* MCize a bunch more stuff, eliminating a lot of uses of the manglerChris Lattner2010-01-161-27/+49
| | | | | | and CurrentFnName. llvm-svn: 93594
* Update CMake build.Ted Kremenek2010-01-151-1/+2
| | | | llvm-svn: 93570
* zext / truncate is free on msp430. Inform codegen about this.Anton Korobeynikov2010-01-152-0/+42
| | | | llvm-svn: 93556
* Add branch relaxation pass (shamelessly stolen from PPC).Anton Korobeynikov2010-01-157-1/+256
| | | | llvm-svn: 93554
* Provide instruction sizes & encoding. No opcodes yet (but not needed so far).Anton Korobeynikov2010-01-153-612/+839
| | | | llvm-svn: 93553
* Enable bit tests and setcc stuff.Anton Korobeynikov2010-01-152-20/+25
| | | | llvm-svn: 93552
* Add micro-optimization which allows us to fold imm into cmp. This allows us ↵Anton Korobeynikov2010-01-151-0/+32
| | | | | | to save 1 word (sometimes) and reduce register pressure. llvm-svn: 93551
* Add instruction formats & support stuffAnton Korobeynikov2010-01-151-10/+115
| | | | llvm-svn: 93550
* Fix cmp emission on msp430: we definitely should turn stuff likeAnton Korobeynikov2010-01-152-25/+27
| | | | | | "icmp lhs, rhs" into "cmp rhs, lhs". This should fix PR5979. llvm-svn: 93496
* Remove pseudo-MI in custom inserter.Anton Korobeynikov2010-01-141-0/+1
| | | | llvm-svn: 93467
* Change SelectCode's argument from SDValue to SDNode *, to make it moreDan Gohman2010-01-051-34/+33
| | | | | | | | | clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
* Mark variable used by 'assert' as 'unused'.Bill Wendling2009-12-281-2/+2
| | | | llvm-svn: 92198
* Remove dead variable.Bill Wendling2009-12-281-1/+0
| | | | llvm-svn: 92197
* Mark FPW as allocable when frame address is taken.Anton Korobeynikov2009-12-211-5/+43
| | | | llvm-svn: 91841
* Pass the error string directly to llvm_unreachable instead of the residualJohn McCall2009-12-181-1/+1
| | | | | | | | | (0 && "error"). Rough consensus seems to be that g++ *should* be diagnosing this because the pointer makes it not an ICE in c++03. Everyone agrees that the current standard is silly and null-pointer-ness should not be based on ICE-ness. Excellent fight scene in Act II, denouement weak, two stars. llvm-svn: 91644
* Do not allow uninitialize access during debug printingAnton Korobeynikov2009-12-131-2/+2
| | | | llvm-svn: 91232
* Implement variable-width shifts.Anton Korobeynikov2009-12-123-7/+170
| | | | | | No testcase yet - it seems we're exposing generic codegen bugs. llvm-svn: 91221
* Lower setcc branchless, if this is profitable.Anton Korobeynikov2009-12-112-2/+86
| | | | | | Based on the patch by Brian Lucas! llvm-svn: 91175
* Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra ↵Anton Korobeynikov2009-12-081-1/+65
| | | | | | instruction. Patch inspired by Brian Lucas! llvm-svn: 90819
* Some pretty-printingAnton Korobeynikov2009-12-071-0/+1
| | | | llvm-svn: 90742
* Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from ↵Anton Korobeynikov2009-12-073-1/+65
| | | | | | x86 :) llvm-svn: 90740
* Initial codegen support for MSP430 ISRsAnton Korobeynikov2009-12-074-8/+54
| | | | llvm-svn: 90739
* Add ability to select hw multiplier mode and select appropriate libcalls.Anton Korobeynikov2009-12-071-0/+29
| | | | llvm-svn: 90737
* Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor ofDan Gohman2009-12-052-12/+0
| | | | | | | MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. llvm-svn: 90634
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-032-5/+5
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Minor optimization: when doing eq/ne comparions and RHS is a constant - swap ↵Anton Korobeynikov2009-11-221-0/+8
| | | | | | operands, this will allow us to fold imm into comparison. llvm-svn: 89574
* Drop unsupported imm operandsAnton Korobeynikov2009-11-221-31/+0
| | | | llvm-svn: 89573
* Use 2-byte alignment for functions. 4 bytes are clear overkill here.Anton Korobeynikov2009-11-221-1/+1
| | | | llvm-svn: 89572
* Use semicolon as assembler comment stringAnton Korobeynikov2009-11-221-0/+1
| | | | llvm-svn: 89571
* Update for new getBlockAddress signature.Dan Gohman2009-11-201-2/+2
| | | | llvm-svn: 89507
* Move DebugInfo checks into EmitComments and remove them fromDavid Greene2009-11-131-1/+1
| | | | | | | | target-specific AsmPrinters. Not all comments need DebugInfo. Re-enable the line numbers comment test. llvm-svn: 88697
* Make the MachineFunction argument of getFrameRegister const.David Greene2009-11-121-1/+1
| | | | | | This also fixes a build error. llvm-svn: 87027
* Add a bool flag to StackObjects telling whether they reference spillDavid Greene2009-11-122-3/+3
| | | | | | | | | | | | | slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
* Set isBarrier = 1 on return instructions, as they are control barriers.Dan Gohman2009-11-111-1/+1
| | | | llvm-svn: 86851
* Fix DenseMap iterator constness.Jeffrey Yasskin2009-11-101-1/+1
| | | | | | | | | | | | | | | | | | | This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! llvm-svn: 86636
* Add and-not (bic) patterns. Based heavily on patch by Brian Lucas!Anton Korobeynikov2009-11-081-1/+31
| | | | llvm-svn: 86471
* Move OR patterns upper to all logical stuff. No functionality change.Anton Korobeynikov2009-11-081-56/+56
| | | | llvm-svn: 86470
* Some nice peephole patterns. Based on patch by Brian Lucas!Anton Korobeynikov2009-11-081-0/+7
| | | | llvm-svn: 86469
* Print tab before operand of jccAnton Korobeynikov2009-11-081-1/+1
| | | | llvm-svn: 86468
OpenPOWER on IntegriCloud