mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-19 04:29:21 +00:00
add a optimization note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22732 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
079a27a0de
commit
c7e18a10d4
@ -11,6 +11,24 @@ TODO:
|
||||
* Support 'update' load/store instructions. These are cracked on the G5, but
|
||||
are still a codesize win.
|
||||
|
||||
* Add a custom legalizer for the GlobalAddress node, to move the funky darwin
|
||||
stub stuff from the instruction selector to the legalizer (exposing low-level
|
||||
operations to the dag for optzn. For example, we want to codegen this:
|
||||
|
||||
int A = 0;
|
||||
void B() { A++; }
|
||||
as:
|
||||
lis r9,ha16(_A)
|
||||
lwz r2,lo16(_A)(r9)
|
||||
addi r2,r2,1
|
||||
stw r2,lo16(_A)(r9)
|
||||
not:
|
||||
lis r2, ha16(_A)
|
||||
lwz r2, lo16(_A)(r2)
|
||||
addi r2, r2, 1
|
||||
lis r3, ha16(_A)
|
||||
stw r2, lo16(_A)(r3)
|
||||
|
||||
* 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:
|
||||
b .LBBl42__2E_expand_function_8_674 ; loopentry.24
|
||||
|
Loading…
Reference in New Issue
Block a user