mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
a0af38c46a
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15306 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
Makefile | ||
PowerPC.td | ||
PowerPCAsmPrinter.cpp | ||
PowerPCCodeEmitter.cpp | ||
PowerPCInstrInfo.cpp | ||
PowerPCInstrInfo.h | ||
PowerPCISelSimple.cpp | ||
PowerPCRegisterInfo.cpp | ||
PowerPCRegisterInfo.h | ||
PowerPCTargetMachine.h | ||
PPC32AsmPrinter.cpp | ||
PPC32ISelSimple.cpp | ||
PPC.h | ||
PPCAsmPrinter.cpp | ||
PPCBranchSelector.cpp | ||
PPCCodeEmitter.cpp | ||
PPCInstrBuilder.h | ||
PPCInstrInfo.td | ||
PPCJITInfo.h | ||
PPCRegisterInfo.td | ||
PPCTargetMachine.cpp | ||
README.txt |
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