Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Trying a inductive predicate for BTL-RTL proof | Léo Gourdin | 2021-05-03 | 1 | -10/+41 |
| | |||||
* | more implem notes in BTLroadmap | Sylvain Boulmé | 2021-05-02 | 1 | -1/+8 |
| | |||||
* | BTL roadmap | Sylvain Boulmé | 2021-05-02 | 1 | -0/+79 |
| | |||||
* | debroussaillage et precisions... | Sylvain Boulmé | 2021-05-01 | 2 | -23/+73 |
| | |||||
* | BTLtoRTL: proof for internal/external/return states | Léo Gourdin | 2021-04-30 | 2 | -2/+27 |
| | |||||
* | start the new "BTL" IR. | Sylvain Boulmé | 2021-04-28 | 6 | -2/+735 |
| | |||||
* | add auxfile | David Monniaux | 2021-04-27 | 1 | -0/+17 |
| | |||||
* | Merge branch 'kvx-work' of ↵ | Léo Gourdin | 2021-04-22 | 18 | -566/+370 |
|\ | | | | | | | gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into kvx-work | ||||
| * | fix broken link in index-kvx.html | Sylvain Boulmé | 2021-04-16 | 1 | -1/+1 |
| | | |||||
| * | Merge remote-tracking branch 'origin/manuscript' into kvx-worksubmission_OOPSLA2021_AARCH64_KVX | Cyril SIX | 2021-04-13 | 5 | -525/+173 |
| |\ | |||||
| | * | Cleaning | Cyril SIX | 2021-04-02 | 1 | -2/+1 |
| | | | |||||
| | * | More efficient | Cyril SIX | 2021-04-02 | 1 | -8/+12 |
| | | | |||||
| | * | Outermost loop detection works | Cyril SIX | 2021-04-02 | 1 | -9/+10 |
| | | | |||||
| | * | Getting all loop bodies | Cyril SIX | 2021-04-02 | 2 | -2/+50 |
| | | | |||||
| | * | get_loop_headers simplification (using the new get_loop_backedges) | Cyril SIX | 2021-04-02 | 1 | -39/+7 |
| | | | |||||
| | * | Simple backedge detection (modified code from get_loop_headers) | Cyril SIX | 2021-04-02 | 3 | -0/+57 |
| | | | |||||
| | * | Big simplification of get_loop_info | Cyril SIX | 2021-03-31 | 1 | -111/+16 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another remnant of trying to devise a complicated algorithm for a problem that was, in fact, very simple: I just had to check whether the branch was within the loop body. I tested it functionally on the benchmarks: only heapsort is changed, in slightly worst (4-5%), because the old get_loop_info had done a buggy guess that proved to be lucky for that particular case. The other benchmarks are unchanged: the predictions stay the exact same. The get_loop_info could potentially be improved by having a natural loop detection that extends to outer loops (not just inner loops), though I expect the performance improvements would be very small. | ||||
| | * | Simplification of the Linearize heuristic (same result functionally) | Cyril SIX | 2021-03-30 | 1 | -216/+6 |
| | | | |||||
| | * | Simplifications on Linearize - details below | Cyril SIX | 2021-03-29 | 1 | -205/+79 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While I was developing the new trace linearize, I started off with implementing a big algorithm reasoning on dependencies etc.., but I realized later that it was giving a too different performance (sometimes better, sometimes worst) than the original CompCert. So I stripped it off gradually until its performance (on regular code with just branch prediction) was on par with the base Linearize of CompCert. I was aiming here for something that is either equal, or better, in terms of performance. My (then and current) theory is that I have stripped it out so much that now it's just like the algorithm of CompCert, but with a modification for Lcond instructions (see the new linearize_aux_cb). However, I never tested that theory: the code worked, so I left it as is, without any simplification. But now that I need to get a clear version for my manuscript, I'm digging into it. It turns out my theory is not really exact. A difference is that instead of taking the minpc across the chain, I take the pc of the very first block of the chain I create. This was (I think) out of laziness in the middle of two iterations, except that I forgot about it. I tested my new theory by deleting all the stuff about dependencies calculation (commited), and also computing a minpc just like original compcert (not commited): I get the same exact Mach code than linearize_aux_cb. So right now, the only difference between linearize_aux_cb and linearize_aux_trace is that slightly different minpc computation. I think transitionning to linearize_aux_cb will be 1) much clearer than this Frankenstein monster of linearize_aux_trace that I made, and 2) might be better performing too. I don't have access to Kalray machines today so i'm leaving this on hold for now, but tomorrow I will test performance wise to see if there is a regression. If there isn't, I will commit this (and it will be the version narrated by my manuscript). If there is a regression, it would mean selecting the pc of the first node (in opposition to the minpc) is more performant, so i'd backtrack the change to linearize_aux_cb anyway and there should then be 0 difference in the generated code. | ||||
| | * | Code simplification of get_path_map (no functionality change) | Cyril SIX | 2021-01-26 | 1 | -14/+16 |
| | | | |||||
| * | | Adding more precise heuristic measures | Cyril SIX | 2021-04-13 | 1 | -2/+62 |
| | | | |||||
| * | | Adding overpredicts | Cyril SIX | 2021-04-13 | 1 | -3/+6 |
| | | | |||||
| * | | Recording of prediction stats with COMPCERT_PROFILING_STATS environment flag | Cyril SIX | 2021-04-13 | 1 | -33/+93 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It only works correctly if both profiling and static prediction are used: it then compares both and gives stats in COMPCERT_PREDICT_STATS file. The stats are of the form: total correct mispredicts missed total = number of total CBs encountered correct = number of correct predictions mispredicts = times when static prediction did a wrong guess (predicted the opposite from profiling, or predicted Some _ when profiling said None) missed = times when static prediction was not able to give a verdict, though the profiling gave one | ||||
| * | | Adding distinction between kvx-cos and kvx-mbr (for trapping loads) | Cyril SIX | 2021-04-13 | 7 | -4/+22 |
| | | | |||||
| * | | rm spurious files | David Monniaux | 2021-04-12 | 39 | -1705/+0 |
| | | | |||||
| * | | test profiling | David Monniaux | 2021-04-12 | 42 | -0/+1720 |
| | | | |||||
| * | | collision of registers | David Monniaux | 2021-04-12 | 2 | -3/+3 |
| | | | |||||
* | | | moving my tests | Léo Gourdin | 2021-04-22 | 26 | -157/+0 |
|/ / | |||||
* | | removing unusued proof line | Léo Gourdin | 2021-04-09 | 1 | -1/+0 |
| | | |||||
* | | adding missing xorimm exp | Léo Gourdin | 2021-04-09 | 2 | -0/+77 |
| | | |||||
* | | Merge branch 'riscv-work' into kvx-work | Léo Gourdin | 2021-04-09 | 21 | -1514/+2642 |
|\ \ | |||||
| * | | Remove flags | Léo Gourdin | 2021-04-09 | 4 | -10/+3 |
| | | | |||||
| * | | Removing expansions from Asmgen | Léo Gourdin | 2021-04-09 | 6 | -1401/+49 |
| | | | |||||
| * | | Removing addptrofs draft, next will be merging | Léo Gourdin | 2021-04-09 | 9 | -254/+104 |
| | | | |||||
| * | | bugfix | Léo Gourdin | 2021-04-08 | 2 | -2/+3 |
| | | | |||||
| * | | Important commit on expansions' mini CSE, and a draft for addptrofs | Léo Gourdin | 2021-04-06 | 13 | -762/+1081 |
| | | | |||||
| * | | a more general way to manage special registers before introducing SP | Léo Gourdin | 2021-03-30 | 8 | -560/+593 |
| | | | |||||
| * | | Now a more general way to perform imm operations | Léo Gourdin | 2021-03-30 | 9 | -38/+68 |
| | | | |||||
| * | | Refactoring the mayundef OP to be more general... | Léo Gourdin | 2021-03-30 | 5 | -201/+191 |
| | | | |||||
| * | | bugfix and printOp | Léo Gourdin | 2021-03-26 | 2 | -19/+29 |
| | | | |||||
| * | | fix admit | Léo Gourdin | 2021-03-26 | 1 | -2/+1 |
| | | | |||||
| * | | Compiler options to manage expansions | Léo Gourdin | 2021-03-26 | 3 | -179/+176 |
| | | | |||||
| * | | Adding more expansions, improving miniCSE, and tuning prepass | Léo Gourdin | 2021-03-26 | 9 | -388/+1518 |
| | | | |||||
| * | | Bugfix liveness | Léo Gourdin | 2021-03-23 | 1 | -12/+8 |
| | | | |||||
| * | | Remove first nop when doing expansion | Léo Gourdin | 2021-03-21 | 2 | -188/+213 |
| | | | |||||
| * | | fp test | Léo Gourdin | 2021-03-10 | 1 | -0/+7 |
| | | | |||||
| * | | Adding miniCSE here too | Léo Gourdin | 2021-03-08 | 1 | -10/+10 |
| | | | |||||
| * | | Merge remote-tracking branch 'origin/riscv-work' into riscv-work-fpinit-stillexp | Léo Gourdin | 2021-03-06 | 10 | -187/+250 |
| |\ \ | |||||
| | * | | some simplification in miniCSE | Léo Gourdin | 2021-03-06 | 1 | -17/+14 |
| | | | | |||||
| | * | | Adding a mini CSE pass in the expansion oracle | Léo Gourdin | 2021-03-06 | 10 | -197/+268 |
| | | | |