Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fix missing "formally"CPP22_main | Sylvain Boulmé | 2021-12-10 | 1 | -1/+1 |
| | |||||
* | authors and papers links for the CPP'22 version | Sylvain Boulmé | 2021-12-06 | 2 | -2/+14 |
| | |||||
* | more explanation on the web page. | Sylvain Boulmé | 2021-12-03 | 1 | -0/+2 |
| | |||||
* | update for CPP_2022 publication | Sylvain Boulmé | 2021-12-02 | 1 | -5/+6 |
| | |||||
* | opweights u74 | Léo Gourdin | 2021-09-17 | 1 | -0/+139 |
| | |||||
* | Revert "[MERGE] weak-software-pipelining in RTLpath" | Léo Gourdin | 2021-09-16 | 47 | -3987/+229 |
| | | | | This reverts commit d0f23ce9e96a8ef984dbdd47a0848bcdd8f43d7e. | ||||
* | latest coq+ocaml versions | Sylvain Boulmé | 2021-09-15 | 1 | -35/+12 |
| | |||||
* | update gitlab-CI from kvx-work | Sylvain Boulmé | 2021-09-15 | 1 | -12/+35 |
| | |||||
* | [MERGE] weak-software-pipelining in RTLpath | Léo Gourdin | 2021-09-02 | 47 | -229/+3987 |
|\ | |||||
| * | Fix small error | Justus Fasse | 2021-08-24 | 1 | -5/+5 |
| | | | | | | | | (was already included for the benchmark runs for the M2 report) | ||||
| * | Hopefully a proper fix to code motion below side exits + NO register renaming | Justus Fasse | 2021-08-21 | 1 | -0/+23 |
| | | |||||
| * | Revert "Fix error" | Justus Fasse | 2021-08-21 | 1 | -17/+5 |
| | | | | | | | | | | | | This reverts commit a0119e5987a1cd84f2baa9286f39b1fc6498af23. Fix applied at wrong place | ||||
| * | Fix error | Justus Fasse | 2021-08-21 | 1 | -5/+17 |
| | | | | | | | | | | | | | | When code motion past side exits is NOT combined with general register renaming, the renaming necessary to make it safe to duplicate instructions may cause final restoration code to be inserted. Final restoration code is trated specially by its own function. | ||||
| * | Remove hopefully useless compiler passes | Justus Fasse | 2021-08-21 | 2 | -16/+5 |
| | | |||||
| * | **Ugly** proof of simu_check_single_correct | Justus Fasse | 2021-08-18 | 1 | -8/+31 |
| | | |||||
| * | Match naming convention of surrounding code. | Justus Fasse | 2021-08-18 | 1 | -2/+2 |
| | | |||||
| * | Merge branch 'kvx-work' into weak-software-pipelining | Justus Fasse | 2021-08-17 | 16 | -358/+1353 |
| |\ | |||||
| * | | Modified logic to detect inner loops spanned by a superblock | Justus Fasse | 2021-08-17 | 1 | -3/+10 |
| | | | |||||
| * | | Remove done TODO comment | Justus Fasse | 2021-08-17 | 1 | -2/+2 |
| | | | |||||
| * | | Work-around for prepass-past-side-exits error. | Justus Fasse | 2021-08-17 | 1 | -11/+17 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, downward scheduling would sometimes give an unverifiable result because instructions are duplicated before restoration instructions and aliasing are applied. If for example a loop increment was moved below multiple side-exits, the restoration code would still mess up the correct duplication of the instruction because the aliasing logic for later side exits would overwrite this change. As a work-around, this commit ensures that the aliasing logic for side-exits is applied in-order. This may leave aliasing code that is utterly useless, which should be cleaned up by DCE. | ||||
| * | | Make warning about worse schedule with relaxed problem non-fatal unless | Justus Fasse | 2021-08-17 | 1 | -1/+3 |
| | | | | | | | | | | | | | | | | | | in debug mode. Compiling glpk-4.65 exhibited this problem but not when using the ILP-based instruction scheduling. | ||||
| * | | Issue warning when idealized final time is larger than default final | Justus Fasse | 2021-08-17 | 1 | -2/+6 |
| | | | | | | | | | | | | time | ||||
| * | | Make specifying of prepass past side exits heuristic optional | Justus Fasse | 2021-08-17 | 1 | -0/+1 |
| | | | |||||
| * | | Fix compilation error | Justus Fasse | 2021-08-16 | 1 | -1/+3 |
| | | | |||||
| * | | Use modified dependency calculation that is more generous (timing-wise) | Justus Fasse | 2021-08-16 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | with regard to scheduling constraints necessitated by code outside of the superblock. This behavior more closely matches that of the other dependency calculations giving a more fair comparison. | ||||
| * | | Supply correct arguments to function | Justus Fasse | 2021-08-16 | 1 | -1/+1 |
| | | | |||||
| * | | Remove useless comment | Justus Fasse | 2021-08-16 | 1 | -1/+0 |
| | | | |||||
| * | | Remove duplicate function definition | Justus Fasse | 2021-08-16 | 1 | -8/+0 |
| | | | |||||
| * | | Better relative estimates by systematically supplying correct liveness | Justus Fasse | 2021-08-16 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | | | information. Correct in the sense that they match the expected scheduling constraints. | ||||
| * | | Insert final restoration code at very end of superblock if possible | Justus Fasse | 2021-08-16 | 1 | -22/+23 |
| | | | |||||
| * | | More appropriate name for function | Justus Fasse | 2021-08-16 | 1 | -5/+2 |
| | | | |||||
| * | | Experimenting with compiler passes | Justus Fasse | 2021-08-16 | 2 | -0/+19 |
| | | | |||||
| * | | Do not restore unnecessary instructions before a predicted Icond | Justus Fasse | 2021-08-11 | 1 | -10/+16 |
| | | | | | | | | | | | | | | | | | | | | | If the Icond is the last instruction of the path, the live_renames includes all the live renames for all successors (s_output_regs). However not all of those need to be stricly restored before the Icond. Some can be restored afterwards. | ||||
| * | | Add missing dependency for restoration_instructions' | Justus Fasse | 2021-08-11 | 1 | -0/+24 |
| | | | |||||
| * | | Allow restoration instructions at the very end of the path. | Justus Fasse | 2021-08-11 | 1 | -2/+18 |
| | | | | | | | | | | | | | | | This becomes necessary once we allow register renaming for the originally last instruction of the path. | ||||
| * | | More aggressive register renaming | Justus Fasse | 2021-08-11 | 1 | -5/+12 |
| | | | |||||
| * | | Make it easier to insert debugging code | Justus Fasse | 2021-08-11 | 1 | -3/+2 |
| | | | |||||
| * | | Better variable name and an early exit in rename_regs | Justus Fasse | 2021-08-11 | 1 | -5/+17 |
| | | | |||||
| * | | Forgotten change | Justus Fasse | 2021-08-11 | 1 | -1/+2 |
| | | | | | | | | | | | | (return expected final time from prepass scheduling) | ||||
| * | | Do not incur latency hit for the fake-read of the memory by a side exit | Justus Fasse | 2021-08-10 | 1 | -2/+16 |
| | | | |||||
| * | | Version of get_simple_dependencies which differentiates between input | Justus Fasse | 2021-08-10 | 1 | -0/+203 |
| | | | | | | | | | | | | regs and input-because-they-are-live-at-the-side-exit regs | ||||
| * | | Use liveness information to prevent instructions getting incorrectly | Justus Fasse | 2021-08-04 | 1 | -6/+15 |
| | | | | | | | | | | | | scheduled upwards | ||||
| * | | Add explanatory comment why some registers are not renamed | Justus Fasse | 2021-08-03 | 1 | -1/+4 |
| | | | |||||
| * | | Use -flift-if N to control how many instructions may be duplicated per | Justus Fasse | 2021-08-03 | 1 | -30/+24 |
| | | | | | | | | | | | | expected cycle gained | ||||
| * | | Rename less registers when pmSSA is turned off but code motion past side | Justus Fasse | 2021-08-02 | 1 | -1/+28 |
| | | | | | | | | | | | | exits is turned on | ||||
| * | | Alias less registers | Justus Fasse | 2021-08-02 | 1 | -5/+38 |
| | | | |||||
| * | | Insert final restoration code before scheduling heuristic again | Justus Fasse | 2021-08-02 | 1 | -7/+34 |
| | | | | | | | | | | | | | | | | | | | | | | | | This is the restoration code that will be part of the superblock even after "if-lifting" (moving compensation/restoration code out of the superblock) + Minor formatting | ||||
| * | | Use alternative implementation of heuristic scheduling | Justus Fasse | 2021-08-02 | 1 | -3/+4 |
| | | | |||||
| * | | Scheduling function that can select the dependency calculation | Justus Fasse | 2021-08-02 | 1 | -0/+84 |
| | | | | | | | | | | | | Mostly copy-pasted from RTLpathScheduleraux and PrepassSchedulingOracle | ||||
| * | | Directly modify the dependency calculation(s) | Justus Fasse | 2021-08-02 | 1 | -1/+382 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alternative approach to relaxed scheduling by directly modifying the dependency calculations. The original get_simple_dependencies is basically copy-pasted and slightly modified to ignore/adjust certain constraints: - Liveness ("other uses")is ignored in the two new functions - A memory write is only added as constraint to the Icond after the next one |