Commit History

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