summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Alpha
Commit message (Collapse)AuthorAgeFilesLines
...
* Instead of passing in an unsigned value for the optimization level, use an enum,Bill Wendling2009-04-294-15/+23
| | | | | | | which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
* Second attempt:Bill Wendling2009-04-294-19/+23
| | | | | | | | | | | | Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
* r70270 isn't ready yet. Back this out. Sorry for the noise.Bill Wendling2009-04-284-23/+19
| | | | llvm-svn: 70275
* Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want toBill Wendling2009-04-284-19/+23
| | | | | | | | | | | use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
* Alpha always requires global relocations to be r/w regardless of PIC.Anton Korobeynikov2009-03-292-1/+8
| | | | llvm-svn: 68006
* CodeGen still defaults to non-verbose asm, but llc now overrides it and ↵Evan Cheng2009-03-254-9/+10
| | | | | | default to verbose. llvm-svn: 67668
* Add support to tablegen for naming the nodes themselves, not just the operands, Nate Begeman2009-03-191-1/+1
| | | | | | | in selectiondag patterns. This is required for the upcoming shuffle_vector rewrite, and as it turns out, cleans up a hack in the Alpha instruction info. llvm-svn: 67286
* It makes no sense to have a ODR version of commonDuncan Sands2009-03-111-2/+1
| | | | | | linkage, so remove it. llvm-svn: 66690
* Introduce new linkage types linkonce_odr, weak_odr, common_odrDuncan Sands2009-03-071-5/+10
| | | | | | | | | | | | | | | | | | | | | and extern_weak_odr. These are the same as the non-odr versions, except that they indicate that the global will only be overridden by an *equivalent* global. In C, a function with weak linkage can be overridden by a function which behaves completely differently. This means that IP passes have to skip weak functions, since any deductions made from the function definition might be wrong, since the definition could be replaced by something completely different at link time. This is not allowed in C++, thanks to the ODR (One-Definition-Rule): if a function is replaced by another at link-time, then the new function must be the same as the original function. If a language knows that a function or other global can only be overridden by an equivalent global, it can give it the weak_odr linkage type, and the optimizers will understand that it is alright to make deductions based on the function body. The code generators on the other hand map weak and weak_odr linkage to the same thing. llvm-svn: 66339
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-243-9/+12
| | | | | | | | | | | | them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. llvm-svn: 65379
* Propagate debug loc info through prologue/epilogue.Bill Wendling2009-02-231-2/+3
| | | | llvm-svn: 65298
* Put code that generates debug labels into TableGen so that it can be used byBill Wendling2009-02-181-0/+1
| | | | | | everyone. llvm-svn: 64978
* Factor out the code to add a MachineOperand to a MachineInstrBuilder.Dan Gohman2009-02-181-14/+4
| | | | llvm-svn: 64891
* Remove non-DebugLoc versions of BuildMI from Alpha and Cell.Dale Johannesen2009-02-134-41/+48
| | | | llvm-svn: 64433
* Check in missing file.Dale Johannesen2009-02-121-2/+4
| | | | llvm-svn: 64410
* Eliminate a couple of non-DebugLoc BuildMI variants.Dale Johannesen2009-02-121-3/+4
| | | | | | Modify callers. llvm-svn: 64409
* Move debug loc info along when the spiller creates new instructions.Bill Wendling2009-02-121-21/+42
| | | | llvm-svn: 64342
* Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nastyEvan Cheng2009-02-092-4/+7
| | | | | | | | suprise to some callers, e.g. register coalescer. For now, add an parameter that tells AnalyzeBranch whether it's safe to modify the mbb. A better solution is out there, but I don't have time to deal with it right now. llvm-svn: 64124
* Use getDebugLoc forwarder instead of getNode()->getDebugLoc.Dale Johannesen2009-02-071-1/+1
| | | | | | No functional change. llvm-svn: 64026
* Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowingDan Gohman2009-02-072-2/+2
| | | | | | ScheduleDAG's TLI member to use const. llvm-svn: 64018
* Get rid of the last non-DebugLoc versions of getNode!Dale Johannesen2009-02-071-6/+8
| | | | | | | | | | | | Many targets build placeholder nodes for special operands, e.g. GlobalBaseReg on X86 and PPC for the PIC base. There's no sensible way to associate debug info with these. I've left them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. I'm not too happy about this but don't see a good improvement; I considered adding a getPseudoOperand or something, but it seems to me that'll just make it harder to read. llvm-svn: 63992
* Remove more non-DebugLoc versions of getNode.Dale Johannesen2009-02-061-17/+22
| | | | llvm-svn: 63969
* Remove non-DebugLoc forms of CopyToReg and CopyFromReg.Dale Johannesen2009-02-042-39/+56
| | | | | | Adjust callers. llvm-svn: 63789
* Remove non-DebugLoc versions of getLoad and getStore.Dale Johannesen2009-02-041-11/+13
| | | | | | Adjust the many callers of those versions. llvm-svn: 63767
* Remove non-DebugLoc forms of the exotic formsDale Johannesen2009-02-041-11/+13
| | | | | | of Lod and Sto; patch uses. llvm-svn: 63716
* Remove some more non-DebugLoc versions of constructionDale Johannesen2009-02-041-9/+10
| | | | | | functions, with callers adjusted to fit. llvm-svn: 63705
* Make LowerCallTo and LowerArguments take a DebugLocDale Johannesen2009-01-302-8/+13
| | | | | | argument. Adjust all callers and overloaded versions. llvm-svn: 63444
* Change TargetInstrInfo::isMoveInstr to return source and destination ↵Evan Cheng2009-01-202-6/+7
| | | | | | sub-register indices as well. llvm-svn: 62600
* Fix Alpha test and support for private linkage.Rafael Espindola2009-01-151-1/+2
| | | | llvm-svn: 62282
* Add the private linkage.Rafael Espindola2009-01-152-1/+2
| | | | llvm-svn: 62279
* Move a few containers out of ScheduleDAGInstrs::BuildSchedGraphDan Gohman2009-01-151-1/+1
| | | | | | | | | | | and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. llvm-svn: 62275
* Rename getABITypeSize to getTypePaddedSize, asDuncan Sands2009-01-121-1/+1
| | | | | | suggested by Chris. llvm-svn: 62099
* Removed trailing whitespace from Makefiles.Misha Brukman2009-01-092-5/+5
| | | | llvm-svn: 61991
* Tidy up #includes, deleting a bunch of unnecessary #includes.Dan Gohman2009-01-052-2/+1
| | | | llvm-svn: 61715
* Fix PR3274: when promoting the condition of a BRCOND node,Duncan Sands2009-01-012-2/+2
| | | | | | | | | | promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
* silence warning when asserts disabled.Chris Lattner2008-12-141-1/+1
| | | | llvm-svn: 61013
* Split foldMemoryOperand into public non-virtual and protected virtualDan Gohman2008-12-032-11/+11
| | | | | | | parts, and add target-independent code to add/preserve MachineMemOperands. llvm-svn: 60488
* Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.Dan Gohman2008-12-031-1/+1
| | | | llvm-svn: 60487
* Add a sanity-check to tablegen to catch the case where isSimpleLoadDan Gohman2008-12-031-2/+6
| | | | | | | | | is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
* There are no longer any places that require aDuncan Sands2008-12-011-2/+2
| | | | | | | | MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. llvm-svn: 60349
* Change the interface to the type legalization methodDuncan Sands2008-12-012-4/+12
| | | | | | | | | | | ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. llvm-svn: 60348
* Move target independent td files from lib/Target/ to include/llvm/Target so ↵Evan Cheng2008-11-241-1/+1
| | | | | | they can be distributed along with the header files. llvm-svn: 59953
* Rename SetCCResultContents to BooleanContents. InDuncan Sands2008-11-231-1/+1
| | | | | | | practice these booleans are mostly produced by SetCC, however the concept is more general. llvm-svn: 59911
* Add more const qualifiers. This fixes build breakage from r59540.Dan Gohman2008-11-182-4/+8
| | | | llvm-svn: 59542
* Adds extern "C" ints to the .cpp files that use RegisterTarget, asOscar Fuentes2008-11-151-0/+7
| | | | | | | | | | | well as 2 files that use "Registrator"s. These are to be used by the MSVC builds, as the Win32 linker does not include libs that are otherwise unreferenced, even if global constructors in the lib have side-effects. Patch by Scott Graham! llvm-svn: 59378
* This shouldn't be necessaryAndrew Lenharth2008-11-111-1/+2
| | | | llvm-svn: 59090
* CMake: corrected split of Alpha and Sparc AsmPrinters.Oscar Fuentes2008-11-111-2/+1
| | | | llvm-svn: 59050
* Separate alpha asmprinter. This should unbreak native build.Anton Korobeynikov2008-11-114-1/+27
| | | | llvm-svn: 59046
* fix another libgcc blockerAndrew Lenharth2008-11-111-0/+1
| | | | llvm-svn: 59026
* Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ↵Evan Cheng2008-11-081-2/+2
| | | | | | ptr. llvm-svn: 58897
OpenPOWER on IntegriCloud