florian
|
9d94ccdc38
* set types of start value calculation correctly when doing strength reduction, resolves #41054
|
8 months ago |
Rika Ichinose
|
11d16be702
Add a bound parameter to node_count(_weighted).
|
3 years ago |
florian
|
3206b2e0cd
* clean up
|
8 months ago |
florian
|
ac4b089e14
* avoid that types of limits of reverted loops are widened
|
8 months ago |
florian
|
c236ac5e97
* revert for loops also if the upper limit is non-constant
|
8 months ago |
J. Gareth "Curious Kit" Moreton
|
2b7df4237b
* nf_pass1_done, nf_error, nf_processing and nf_do_not_execute
|
1 year ago |
Yuriy Sydorov
|
7388735b11
* Strength reduction optimization: - Use a temp for complex loop start values to prevent double evaluation.
|
3 years ago |
Yuriy Sydorov
|
6bf4c7a68d
* Optimized evaluation of the condition.
|
3 years ago |
Yuriy Sydorov
|
b2165570de
* Fixed missing assignments with the strength reduction optimization.
|
3 years ago |
Yuriy Sydorov
|
bd4c206472
* Fixed the strength reduction optimization for loops containing 'continue'.
|
3 years ago |
Yuriy Sydorov
|
abe3002b5b
* Fixed lack of the calculation code for the strength reduction optimization.
|
3 years ago |
yury
|
64c586b86d
* Removed/ifdefed lots of unused variables.
|
4 years ago |
florian
|
1ba8255af0
* do not try to unroll a loop if previously an error was thrown, resolves #37475
|
5 years ago |
florian
|
aca9727418
+ OptimizeForLoop: convert for-loops into zero-based backward for-loops if possible, for most architectures, this results in simpler code
|
5 years ago |
florian
|
ac974c9ab7
* improve is_loop_invariant for load nodes
|
5 years ago |
florian
|
507fc9c1ff
+ take care of addn and subn in is_loop_invariant
|
5 years ago |
florian
|
aabd7c7217
* more fixes for loop strength reduction
|
5 years ago |
florian
|
a9a711763f
* some fixes to loop strength reduction
|
5 years ago |
Jonas Maebe
|
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
|
6 years ago |
florian
|
21d785e41b
* do not unroll loops if the counter variable is accessed outside the current scope
|
7 years ago |
florian
|
8f472d5212
* check for more controll flow statements before doing loop unrolling
|
7 years ago |
florian
|
bd27b7635b
* also in case of constref make_not_regable with ra_addr_taken must be called, later on in pass_1 this happens anyways
|
7 years ago |
florian
|
c59bd8c29a
+ calculate loop unrolling using node_count_weighted which takes care of nodes generating no code
|
7 years ago |
florian
|
512328deee
* include loop unrolling in -O3, as it is done carefully, it is beneficial on average
|
7 years ago |
florian
|
fff6e0ecdb
* unroll more aggressively
|
7 years ago |
nickysn
|
efc5e339d0
* use an enum instead of integer constants to represent inline numbers
|
8 years ago |
florian
|
4731ebeb50
* reset initcode after adding it to the statements list, so further iterations of loop optimization create a new one
|
9 years ago |
florian
|
b59219b8e0
* when getting rid of a for loop by unrolling, simplify the block afterwards,
|
9 years ago |
florian
|
f813703cf3
* fixes several issues with loop unrolling
|
10 years ago |
Jonas Maebe
|
b57c95043f
+ support overriding tdef/tsym methods with target-specific functionality:
|
11 years ago |