1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 21:42:54 +02:00
llvm-mirror/lib/Target/PowerPC
2004-07-28 00:56:04 +00:00
..
Makefile Renamed files: 2004-07-27 23:29:16 +00:00
PowerPC.h Add PowerPCBranchSelector to discover which are `long' branches. 2004-07-27 18:33:06 +00:00
PowerPC.td Renamed files: 2004-07-27 23:29:16 +00:00
PowerPCAsmPrinter.cpp Fix printing of immediate operands by looking at their operand types in 2004-07-28 00:00:48 +00:00
PowerPCBranchSelector.cpp Add PowerPCBranchSelector to discover which are `long' branches. 2004-07-27 18:33:06 +00:00
PowerPCCodeEmitter.cpp Initial revision 2004-06-21 16:55:25 +00:00
PowerPCInstrBuilder.h * Wrap long lines (comments and code) 2004-07-07 20:01:36 +00:00
PowerPCInstrInfo.cpp ADDI can take several forms, including: 2004-07-26 21:50:38 +00:00
PowerPCInstrInfo.h Moved definition of invertPPCBranchOpcode() into PowerPCInstrInfo class. 2004-07-27 18:34:11 +00:00
PowerPCInstrInfo.td Renamed files: 2004-07-27 23:29:16 +00:00
PowerPCISelSimple.cpp LI can only take signed values, so values > 32767 can only be loaded with ORI 2004-07-28 00:56:04 +00:00
PowerPCJITInfo.h Do IMPLICIT_DEFs on incoming args' hard regs, to avoid confusing the regalloc. 2004-07-16 10:31:25 +00:00
PowerPCRegisterInfo.cpp Remove empty unused method processFunctionBeforeFrameFinalized() 2004-07-27 18:38:40 +00:00
PowerPCRegisterInfo.h Remove empty unused method processFunctionBeforeFrameFinalized() 2004-07-27 18:38:40 +00:00
PowerPCRegisterInfo.td Renamed files: 2004-07-27 23:29:16 +00:00
PowerPCTargetMachine.cpp Run the branch selection pass right before the asm printer. 2004-07-27 18:39:34 +00:00
PowerPCTargetMachine.h * Codegen of GEPs dramatically improved by folding multiplies and adds 2004-07-23 16:08:20 +00:00
PPC32AsmPrinter.cpp Fix printing of immediate operands by looking at their operand types in 2004-07-28 00:00:48 +00:00
PPC32CodeEmitter.cpp Initial revision 2004-06-21 16:55:25 +00:00
PPC32ISelSimple.cpp LI can only take signed values, so values > 32767 can only be loaded with ORI 2004-07-28 00:56:04 +00:00
README.txt Reorganize tests to place them in proper directories. 2004-07-28 00:55:12 +00:00

Currently unimplemented:
* cast fp to bool
* signed right shift of long by reg

Current bugs:
* large fixed-size allocas not correct, although should
  be closer to working.  Added code in PPCRegisterInfo.cpp
  to do >16bit subtractions to the stack pointer.

Codegen improvements needed:
* no alias analysis causes us to generate slow code for Shootout/matrix
* setCondInst needs to know branchless versions of seteq/setne/etc
* cast elimination pass (uint -> sbyte -> short, kill the byte -> short)
* should hint to the branch select pass that it doesn't need to print the
  second unconditional branch, so we don't end up with things like:
.LBBl42__2E_expand_function_8_21:	; LeafBlock37
	cmplwi cr0, r29, 11
	bne cr0, $+8
	b .LBBl42__2E_expand_function_8_674	; loopentry.24
	b .LBBl42__2E_expand_function_8_42	; NewDefault
	b .LBBl42__2E_expand_function_8_42	; NewDefault

Current hacks:
* lazy insert of GlobalBaseReg definition at front of first MBB
  A prime candidate for sabre's "slightly above ISel" passes.
* cast code is huge, unwieldy.  Should probably be broken up into
  smaller pieces.
* visitLoadInst is getting awfully cluttered as well.

Currently failing tests:
* SingleSource
  `- Regression
  |  `- 2003-05-22-VarSizeArray
  `- Benchmarks
  |  `- Shootout-C++ : most programs fail, miscompilations
  `- UnitTests
  |   `- C++Catch
  |   `- SimpleC++Test
  `- ConditionalExpr
  `- casts
  `- sumarray2d: large alloca miscompiled
  `- test_indvars
* MultiSource
  |- Applications
  |  `- burg: miscompilation
  |  `- siod: llc bus error
  |  `- hbd: miscompilation
  |  `- d (make_dparser): miscompilation
  `- Benchmarks
     `- MallocBench/make: branch target too far