summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
Commit message (Collapse)AuthorAgeFilesLines
* Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe whatBill Wendling2010-05-141-1/+1
| | | | | | | | | the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802
* Set isTerminator on TRAP instructions.Dan Gohman2010-05-141-1/+1
| | | | llvm-svn: 103778
* Don't use isBarrier for the PowerPC sync instruction. isBarrier is forDan Gohman2010-05-141-1/+0
| | | | | | control barriers, not memory ordering barriers. llvm-svn: 103777
* Implement a bunch more TargetSelectionDAGInfo infrastructure.Dan Gohman2010-05-114-4/+13
| | | | | | | | Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. llvm-svn: 103481
* Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that itDan Gohman2010-05-062-5/+4
| | | | | | doesn't have to guess. llvm-svn: 103194
* Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot.Evan Cheng2010-05-062-4/+8
| | | | llvm-svn: 103193
* No-ops emitted for scheduling don't correspond with anything in theDan Gohman2010-05-051-2/+0
| | | | | | user's source, so don't arbitrarily assign them a debug location. llvm-svn: 103121
* Implement builtin_return_address(x) and builtin_frame_address(x) Dale Johannesen2010-05-031-23/+34
| | | | | | on PPC for x!=0. 7624113. llvm-svn: 102972
* Get rid of the EdgeMapping map. Instead, just check for BasicBlockDan Gohman2010-05-012-9/+5
| | | | | | changes before doing phi lowering for switches. llvm-svn: 102809
* Make naked functions work on PPC.Dale Johannesen2010-04-291-1/+7
| | | | llvm-svn: 102657
* Frame index can be negative.Evan Cheng2010-04-292-2/+2
| | | | llvm-svn: 102577
* Use MachineOperand::is* predicates.Devang Patel2010-04-271-3/+3
| | | | llvm-svn: 102472
* Add PPC AsmPrinter handling for target-specific form ofDale Johannesen2010-04-261-0/+18
| | | | | | DBG_VALUE, and a cautionary comment. llvm-svn: 102371
* Add PPC specific emitFrameIndexDebugValue.Evan Cheng2010-04-262-0/+16
| | | | llvm-svn: 102325
* Implement -disable-non-leaf-fp-elim which disable frame pointer eliminationEvan Cheng2010-04-212-2/+2
| | | | | | | optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 llvm-svn: 101984
* Add more const qualifiers on TargetMachine and friends.Dan Gohman2010-04-211-2/+2
| | | | llvm-svn: 101977
* Make processor FUs unique for given itinerary. This extends the limit of 32Anton Korobeynikov2010-04-185-7/+11
| | | | | | | FU per CPU arch to 32 per intinerary allowing precise modelling of quite complex pipelines in the future. llvm-svn: 101754
* Add const qualifiers to TargetLoweringObjectFile usage.Dan Gohman2010-04-171-6/+6
| | | | llvm-svn: 101640
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-174-80/+87
| | | | | | | | | | | | | const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. llvm-svn: 101635
* Move per-function state out of TargetLowering subclasses and intoDan Gohman2010-04-173-44/+64
| | | | | | MachineFunctionInfo subclasses. llvm-svn: 101634
* Name these stub files consistently with the SPU and PPC targets' conventions.Chandler Carruth2010-04-172-9/+9
| | | | | | | Also rename the classes appropriately. The CMake build already used these names. llvm-svn: 101631
* Add skeleton target-specific SelectionDAGInfo files.Dan Gohman2010-04-163-0/+52
| | | | llvm-svn: 101564
* Eliminate an unnecessary SelectionDAG dependency in getOptimalMemOpType.Dan Gohman2010-04-162-6/+6
| | | | llvm-svn: 101531
* EnablePPC64RS and EnablePPC32RS are used in multiple files, so theyDan Gohman2010-04-152-4/+11
| | | | | | can't be static. llvm-svn: 101377
* Fix a bunch of namespace polution.Dan Gohman2010-04-151-8/+8
| | | | llvm-svn: 101376
* Add const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-153-9/+9
| | | | llvm-svn: 101334
* remove the TargetLoweringObjectFileMachO::getMachoSectionChris Lattner2010-04-081-10/+10
| | | | | | api and update clients to use MCContext instead. llvm-svn: 100808
* Avoid using f64 to lower memcpy from constant string. It's cheaper to use ↵Evan Cheng2010-04-082-7/+12
| | | | | | i32 store of immediates. llvm-svn: 100751
* add newlines at end of files.Chris Lattner2010-04-071-1/+1
| | | | llvm-svn: 100706
* Educate GetInstrSizeInBytes implementations thatDale Johannesen2010-04-071-0/+1
| | | | | | DBG_VALUE does not generate code. llvm-svn: 100681
* remove the MMI pointer from MachineFrameInfo.Chris Lattner2010-04-051-5/+5
| | | | llvm-svn: 100415
* Replace TSFlagsFields and TSFlagsShifts with a simpler TSFlags field.Jakob Stoklund Olesen2010-04-052-11/+8
| | | | | | | | | | | | | | | | | | | When a target instruction wants to set target-specific flags, it should simply set bits in the TSFlags bit vector defined in the Instruction TableGen class. This works well because TableGen resolves member references late: class I : Instruction { AddrMode AM = AddrModeNone; let TSFlags{3-0} = AM.Value; } let AM = AddrMode4 in def ADD : I; TSFlags gets the expected bits from AddrMode4 in this example. llvm-svn: 100384
* just have all targets create the DwarfWriter.Chris Lattner2010-04-051-13/+0
| | | | llvm-svn: 100377
* simplify various getAnalysisUsage implementations.Chris Lattner2010-04-051-2/+0
| | | | llvm-svn: 100376
* eliminate the magic AbsoluteDebugSectionOffsets MAI hook,Chris Lattner2010-04-041-1/+0
| | | | | | | | | which is really a property of the section being referenced. Add a predicate to MCSection to replace it. Yay for reduction in magic. llvm-svn: 100367
* don't reset the default.Chris Lattner2010-04-041-1/+0
| | | | llvm-svn: 100352
* Momentous day: remove the "O" member from AsmPrinter. Now all Chris Lattner2010-04-041-17/+10
| | | | | | | | | | "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. llvm-svn: 100327
* finish eliminating uses of O.Chris Lattner2010-04-041-17/+34
| | | | llvm-svn: 100321
* mcize more of ppc stub printing.Chris Lattner2010-04-041-15/+16
| | | | llvm-svn: 100320
* mcize a bunch more stuff, using EmitRawText for things weChris Lattner2010-04-041-25/+28
| | | | | | don't have mcstreamer support for yet. llvm-svn: 100319
* convert the non-MCInstPrinter'ized EmitInstruction Chris Lattner2010-04-041-2/+4
| | | | | | | implementations to use EmitRawText instead of writing directly to "O". llvm-svn: 100318
* fix PrintAsmOperand and PrintAsmMemoryOperand to pass down Chris Lattner2010-04-041-4/+7
| | | | | | raw_ostream to print to. llvm-svn: 100313
* change a ton of code to not implicitly use the "O" raw_ostreamChris Lattner2010-04-041-51/+62
| | | | | | member of AsmPrinter. Instead, pass it in explicitly. llvm-svn: 100306
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-041-1/+1
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
* asmstreamerize the .size directive for function bodies, force clientsChris Lattner2010-04-031-1/+1
| | | | | | of printOffset to pass in a stream to print to. llvm-svn: 100296
* use DebugLoc default ctor instead of DebugLoc::getUnknownLoc()Chris Lattner2010-04-024-13/+13
| | | | llvm-svn: 100214
* Correctly lower memset / memcpy of undef. It should be a nop. PR6767.Evan Cheng2010-04-022-16/+23
| | | | llvm-svn: 100208
* Revert r100191 since it breaks objc in clang Mon P Wang2010-04-021-1/+1
| | | | llvm-svn: 100199
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-021-1/+1
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100191
* Teach AnalyzeBranch, RemoveBranch and the branchDale Johannesen2010-04-021-1/+14
| | | | | | | folder to be tolerant of debug info following the branch(es) at the end of a block. llvm-svn: 100168
OpenPOWER on IntegriCloud