Comments (2)
This sounds like something worth pursuing. For example, currently there are a lot of places that have the following code pattern: PHA ... TSX ORA $101,X INX TXS which usually could be simplified to TAX ... ORA identity,X. Variable-to-register optimization could optimize more opcodes (and since these already use cost-to-benefit calculations, they won't have speed regressions). There are also several places that could use TXY/TYX right now (even if they don't use it even on 65816)
I think it would almost always lead to larger code though, so I agree that it should be a flag.
from millfork.
So I checked and it turned out that the identity table is actually already used in few places at the -Ob
level of optimization. I'll add more uses for it, I'll add some optimizations that target it, so that things like LDA identity,X or ORA identity+n are optimized, and I'll move it to a separate flag, so that it can be used without -Ob
(which is an optimization level that is a bit ridiculous, with things like loop unrolling etc., and blows up the code size too much).
from millfork.
Related Issues (20)
- Commodore SYS doesn't update based upon true Start or warn
- Structs can't have volitile members HOT 1
- Implement ++ and -- operators in the Millfork language HOT 4
- file array initiliser can't handle maths
- Address of sid_v1_sr in file c64_sid.mfk is incorrect HOT 1
- 65CE02 JSR incorrect Assmbly HOT 1
- Multiline comments HOT 5
- possible to pass a function to a macro? or find the identifier for the current function? HOT 3
- Maths doesn't promote to destination type HOT 6
- compiler accepts 'array(type)' but not 'array (type)'
- switch_hirom in c64_easyflash.mfk should write to $DE00 not $DE01
- clear_carry return doesn't work ?
- for x : array strange behavior
- Unnamed Structure and Union Fields
- Other label format support? HOT 3
- Assigning struct word member from another struct word member HOT 1
- Compiler assuming C clear when it isn't?
- Hello World example from documentation doesn't work HOT 1
- IX index is broken in the Z80 assembler.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from millfork.