summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Remove makefile complexity by always running tablegen with its final outputChris Lattner2003-08-011-7/+2
| | | | | | directory. llvm-svn: 7485
* Add all arithmetic operators to ConstantExprToString().Vikram S. Adve2003-08-011-0/+40
| | | | | | | | Note that some generated operators (like &, | or ^) may not be supported by the assembler -- but if they've got this far, it's better to generate them and let the assembler decide. llvm-svn: 7476
* *Both* operands of divide need sign-extension before divide (if smallerVikram S. Adve2003-08-011-8/+16
| | | | | | than machine register size), not just the second operand. llvm-svn: 7475
* Put back the separate pass to decompose multi-dimensional referencesVikram S. Adve2003-08-011-0/+3
| | | | | | | | since it is *necessary* for correct code generation. Only optional transformations belong in the PreOpts pass (which needs to be renamed from PreSelection to PreOpts). llvm-svn: 7474
* encode size information into each ValueTypeChris Lattner2003-08-011-11/+33
| | | | | | Add new RegisterInfo class llvm-svn: 7469
* This method is long deadChris Lattner2003-08-011-3/+0
| | | | llvm-svn: 7460
* Remove more obsolete commentsChris Lattner2003-07-311-50/+2
| | | | llvm-svn: 7455
* Changed pointer to the JIT code to its current location, under LLI.Misha Brukman2003-07-311-1/+1
| | | | llvm-svn: 7454
* I think local symbols in X86 GAS have to start with .L, not justBrian Gaeke2003-07-311-3/+5
| | | | | | | .; so I have changed the basic block markers to start with .L. I also broke up a >80char line. llvm-svn: 7452
* Add commentsChris Lattner2003-07-301-1/+19
| | | | | | Make the register classes optionally take code fragments for allocation_order_* llvm-svn: 7441
* We no longer need to preprocess SparcV9.td before sending it through tablegenChris Lattner2003-07-302-30/+30
| | | | llvm-svn: 7437
* When emitting a constant, check for ConstantExpr beforeVikram S. Adve2003-07-301-14/+15
| | | | | | ordinary (primitive) types since ConstantExprs may be of primitive type! llvm-svn: 7418
* Conform to the new interface for describing target registers... even thoughChris Lattner2003-07-301-14/+24
| | | | | | it's currently not used. llvm-svn: 7416
* Add all of the necessary classes to describe the contents of the MRegister.h ↵Chris Lattner2003-07-301-1/+40
| | | | | | | | implementation for a target. llvm-svn: 7415
* Only regenerate the .inc file if IT has changed, not just if the .td filesChris Lattner2003-07-301-4/+13
| | | | | | have changed. llvm-svn: 7414
* Use target specific interface instead of forcing it to be target-genericChris Lattner2003-07-301-4/+6
| | | | llvm-svn: 7413
* No this file is not actually Sparc.td :)Chris Lattner2003-07-291-7/+5
| | | | llvm-svn: 7405
* Do not use 'cpp' directlyChris Lattner2003-07-291-1/+1
| | | | llvm-svn: 7404
* Add namespace specifier, add flags used by the X86 BEChris Lattner2003-07-291-5/+7
| | | | llvm-svn: 7403
* * Cleaned up and corrected comments wrt instruction formatsMisha Brukman2003-07-291-18/+18
| | | | | | * Enabled STXFSR instructions llvm-svn: 7400
* Make emitFarCall() public, and add a few comments to functions.Misha Brukman2003-07-291-3/+27
| | | | llvm-svn: 7399
* Unify all constant evaluations that depend on register sizeVikram S. Adve2003-07-292-72/+104
| | | | | | in ConvertConstantToIntType. llvm-svn: 7395
* Rename 'dump-asm' to 'dump-input' and really print it just before code-gen.Vikram S. Adve2003-07-291-6/+6
| | | | llvm-svn: 7394
* Bug fix: don't unnecessarily pretty-print control-characters, some ofVikram S. Adve2003-07-291-15/+4
| | | | | | which were wrong (particularly, '\a' for '\007'). llvm-svn: 7393
* Add ConvertConstantToIntType() to unify all constant handlingVikram S. Adve2003-07-291-50/+16
| | | | | | | | | that depends on machine register size. Moved insertCallerSavingCode() to PhyRegAlloc and moved isRegVolatile and modifiedByCall to TargetRegInfo: they are all machine independent. Remove several dead functions. llvm-svn: 7392
* Add code to support stack spill/temp offsets that don't fit in theVikram S. Adve2003-07-291-238/+99
| | | | | | | immed. field. Moved insertCallerSavingCode() to PhyRegAlloc: it is now machine independent. Remove all uses of PhyRegAlloc. llvm-svn: 7391
* * Correctly emit a far call if the target address does not fit into 30 bitsMisha Brukman2003-07-291-17/+15
| | | | | | | instead of assert()ing * Fixed a nasty bug where '07' was used instead of register 'o7' llvm-svn: 7382
* Move "register flags" definition the type of registers to be fully fledgedChris Lattner2003-07-292-40/+41
| | | | | | value types llvm-svn: 7377
* Specify the value type for the register, not just the size.Chris Lattner2003-07-281-1/+4
| | | | llvm-svn: 7357
* Instead of specifying the SIZE of the register, go so far as to specifyChris Lattner2003-07-281-1/+16
| | | | | | what value type it is. llvm-svn: 7356
* Rename function to be more consistent with filenameChris Lattner2003-07-263-6/+6
| | | | llvm-svn: 7352
* We don't modify the LLVM rep, remain const correctChris Lattner2003-07-261-2/+2
| | | | llvm-svn: 7345
* If the pass changes _anything_ it must return trueChris Lattner2003-07-261-1/+2
| | | | llvm-svn: 7344
* This code doesn't modify the LLVM structure, keep stuff constChris Lattner2003-07-263-6/+6
| | | | llvm-svn: 7343
* (1) Major fix to the way unused regs. are marked and found for the FPVikram S. Adve2003-07-254-566/+140
| | | | | | | | | | | | | Single and FP double reg types (which share the same reg class). Now all methods marking/finding unused regs consider the regType within the reg class, and SparcFloatRegClass specializes this code. (2) Remove machine-specific regalloc. methods that are no longer needed. In particular, arguments and return value from a call do not need machine-specific code for allocation. (3) Rename TargetRegInfo::getRegType variants to avoid unintentional overloading when an include file is omitted. llvm-svn: 7334
* 1. Fix a case that was marking the invalid reg. num. (-1) as used,Vikram S. Adve2003-07-251-14/+35
| | | | | | | | causing a nasty array bound error later. 2. Fix silly typo causing logical shift of unsigned long to use SRL instead of SRLX. llvm-svn: 7330
* Use unified CWriter-X86/Printer name mangler. Do not bother usingBrian Gaeke2003-07-241-88/+28
| | | | | | | SlotCalculator in CWriter. (Unfortunately, all this means a lot of X86/Printer's methods have to be de-constified again. Oh well.) llvm-svn: 7299
* It doesn't appear that we need to #include these.Brian Gaeke2003-07-241-3/+0
| | | | llvm-svn: 7291
* Constify most methods. We could have constified doInitialization andBrian Gaeke2003-07-241-16/+25
| | | | | | | | | | | doFinalization too except that would have made them shadow, not override, the parent class :-P. Allow *any* constant cast expression between pointers and longs, or vice-versa, or any widening (not just same-size) conversion that isLosslesslyConvertibleTo approves. This fixes oopack. llvm-svn: 7288
* Printer.cpp: Ditch addRequired/getAnalysis, because they leaveBrian Gaeke2003-07-233-61/+58
| | | | | | | | | | | Printer::doFinalization() out in the cold. Now we pass in a TargetMachine to Printer's constructor and get the TargetData from the TargetMachine. Don't pass TargetMachine or MRegisterInfo objects around in the Printer. Constify TargetData references. X86.h: Update comment and prototype of createX86CodePrinterPass(). X86TargetMachine.cpp: Update callers of createX86CodePrinterPass(). llvm-svn: 7275
* Add, rewrite, and/or reformat many comments.Brian Gaeke2003-07-231-80/+120
| | | | | | | | | | | | | | | | | | | | Stop passing ostreams around: we already have one perfectly good ostream and we can all share it. Stop stashing a pointer to TargetData in the Pass object, because that will lead to a crash if there are no functions in the module (ouch!) Instead, use addRequired() and getAnalysis(), like we always should have done. Move the check for ConstantExpr up before the check for isPrimitiveType, because we need to be able to catch e.g. ubyte (cast bool false to ubyte), whose type is primitive but which is nevertheless a ConstantExpr, by calling our specialized handler instead of the AsmWriter. This would result in assembler errors when we would try to output something like ".byte (cast bool false to ubyte)". GC some unused variable declarations. llvm-svn: 7265
* Remove redundant const qualifiers from cast<> expressionsChris Lattner2003-07-232-3/+3
| | | | llvm-svn: 7253
* Simplify code by using ConstantInt::getRawValue instead of checking to seeChris Lattner2003-07-234-52/+18
| | | | | | whether the constant is signed or unsigned, then casting llvm-svn: 7252
* Simplify code a bitChris Lattner2003-07-211-9/+9
| | | | llvm-svn: 7217
* Added special consideration for instrumentation strategyAnand Shukla2003-07-203-0/+24
| | | | llvm-svn: 7208
* Please, save your applause^H^H^H^H^H^H^H^Hflames for the end...Brian Gaeke2003-07-181-3/+6
| | | | | | | | | | | | | | | | Avoid a fall-through in the (stubby) treatment of the longjmp intrinsic call which causes llc & lli to core-dump. Add a sort-of treatment of cast double to ulong. I am not really sure what a user should expect to see upon casting a negative FP value to unsigned long long. But with what is given here, I was able to write a program that could cast -123.456 to ulong and back and get -123.0, which seems like a step in the right direction. GCC seems to give you 0. I don't know if I'd consider that useful. These cases were coming up in GNU coreutils-5.0. llvm-svn: 7205
* Use getClassB for load and store; we don't want to abort when weBrian Gaeke2003-07-171-2/+2
| | | | | | try to load or store through a bool*. llvm-svn: 7195
* Fixed the number translation scheme for the integer condition code registers: itMisha Brukman2003-07-162-32/+8
| | | | | | | | | | now works in instructions which require a 2-bit or 3-bit INTcc code. Incidentally, that means that the representation of INTcc registers is now the same in both integer and FP instructions. Thus, code became much simpler and cleaner. llvm-svn: 7185
* The name should really be `simm11' to follow the naming convention, but this hasMisha Brukman2003-07-161-2/+2
| | | | | | no change in functionality. llvm-svn: 7184
* No need for a second immediate field if the class already inherits one.Misha Brukman2003-07-151-2/+1
| | | | llvm-svn: 7182
OpenPOWER on IntegriCloud