aboutsummaryrefslogtreecommitdiffstatshomepage
AgeCommit message (Expand)AuthorFilesLines
2022-06-27bitwise: early expansion of simple constantsbitwise-onesLuc Van Oostenryck3-2/+60
2022-06-27bitwise: do not remove the signedness of bitwise typesLuc Van Oostenryck3-3/+1
2022-06-27bitwise: allow compares for bitwise typesLuc Van Oostenryck3-2/+4
2022-06-27bitwise: accept all ones as non-restricted valueLuc Van Oostenryck2-1/+14
2022-06-27bitwise: add testcasesLuc Van Oostenryck4-0/+90
2022-06-14predefine __ATOMIC_ACQUIRE & friends as weakLuc Van Oostenryck1-6/+6
2022-06-09Merge branches 'cgcc-dash-x' and 'fixes'Luc Van Oostenryck3-0/+19
2022-06-09allow show_token() on TOKEN_ZERO_IDENTLuc Van Oostenryck1-0/+2
2022-06-07fix crash when inlining casts of erroneous expressionsLuc Van Oostenryck2-0/+17
2022-06-06cgcc: do not die on '-x assembler'Luc Van Oostenryck1-3/+2
2022-06-05Merge branch 'riscv'Luc Van Oostenryck1-13/+9
2022-06-05RISC-V: Remove "g" from the extension listPalmer Dabbelt1-1/+0
2022-06-05RISC-V: Remove the unimplemented ISA extensionsPalmer Dabbelt1-10/+0
2022-06-05RISC-V: Match GCC's semantics for multiple -march instancesPalmer Dabbelt1-0/+3
2022-06-05RISC-V: don't die() on -march errors, just warnPalmer Dabbelt1-2/+6
2022-06-05Merge branch 'cast-value'Luc Van Oostenryck4-9/+10
2022-05-31cast_value: remove error-prone redundant argumentLuc Van Oostenryck4-7/+6
2022-05-31cast_value: assign the new typeLuc Van Oostenryck3-2/+4
2022-05-31Merge branch 'fixes' into masterLuc Van Oostenryck6-1/+59
2022-05-31fix zero/sign extension of integer character constantsLuc Van Oostenryck3-1/+27
2022-05-22Merge branch 'xtensa'Luc Van Oostenryck1-0/+7
2022-05-22cgcc: add Xtensa supportGuennadi Liakhovetski1-0/+7
2022-05-22handle clang's option "-meabi gnu"Luc Van Oostenryck1-0/+13
2022-05-21Merge branch 'riscv-zicsr'Luc Van Oostenryck1-2/+10
2022-05-21RISC-V: Add the Zifencei extensionPalmer Dabbelt1-0/+4
2022-05-21RISC-V: Add the Zicsr extensionPalmer Dabbelt1-2/+6
2022-05-21Use offsetof macro to silence null ptr subtraction warningRichard Palethorpe1-1/+1
2022-05-21fix one year off in v0.6.4's release notesLuc Van Oostenryck1-1/+1
2022-05-21Merge branch 'semid'Luc Van Oostenryck5-2/+72
2022-05-21Merge branch 'next-ramsay'Luc Van Oostenryck4-1/+56
2022-05-21dissect: Show typedefsAlexey Gladkov2-1/+14
2022-05-21dissect: Show macro definitionsAlexey Gladkov2-2/+14
2022-05-21dissect: Allow to show all symbolsAlexey Gladkov4-1/+46
2022-05-21fix infinite loop when expanding __builtin_object_size() with self-init varsLuc Van Oostenryck2-0/+19
2022-05-20parse: warn about a 'case label' on empty statementRamsay Jones2-0/+27
2022-05-20sparse: fix broken 'memcpy-max-count' checkRamsay Jones2-1/+29
2021-09-06Sparse v0.6.4v0.6.4Luc Van Oostenryck2-3/+3
2021-09-01Sparse v0.6.4-rc1v0.6.4-rc1Luc Van Oostenryck1-1/+1
2021-09-01Add release notes for incoming v0.6.4Luc Van Oostenryck2-0/+106
2021-08-02Merge branch 'schecker-fixes'Luc Van Oostenryck1-17/+31
2021-07-29scheck: fix type of operands in castsLuc Van Oostenryck1-10/+8
2021-07-27scheck: mkvar() with target or input typeLuc Van Oostenryck1-0/+12
2021-07-27scheck: constants are untypedLuc Van Oostenryck1-3/+2
2021-07-27scheck: ignore OP_NOP & friendsLuc Van Oostenryck1-0/+5
2021-07-27scheck: better diagnostic for unsupported instructionsLuc Van Oostenryck1-4/+4
2021-07-27fix missing itype in SEL(x, 0/1, 1/0) --> (x ==/!= 0)Luc Van Oostenryck1-0/+1
2021-04-20Merge branches misc, cmp-pow2, optim-and-cmp, cmp-and-or and optim-cast-eval ...Luc Van Oostenryck11-74/+243
2021-04-19remove early simplification of casts during evaluationLuc Van Oostenryck3-45/+1
2021-04-19simplify TRUNC(NOT(x)) --> NOT(TRUNC(x))Luc Van Oostenryck2-1/+15
2021-04-18TRUNC(x) {==,!=} C --> AND(x,M) {==,!=} CLuc Van Oostenryck1-0/+14
2021-04-18simplify AND(x >= 0, x < C) --> (unsigned)x < CLuc Van Oostenryck3-2/+11
2021-04-18add helper is_positive()Luc Van Oostenryck1-0/+5
2021-04-18add testcases for AND(x > 0, x <= C) --> x u<= CLuc Van Oostenryck2-0/+32
2021-04-18canonicalize constant signed compares toward zeroLuc Van Oostenryck2-6/+102
2021-04-18Merge branches 'fix-phisrc' and 'insert-last-insn' into memops-prepLuc Van Oostenryck14-200/+290
2021-04-18add testcases for simplification of casts.Luc Van Oostenryck4-24/+51
2021-04-17memops: we can kill addresses unconditionallyLuc Van Oostenryck1-3/+1
2021-04-17memops: avoid using first_pseudo()Luc Van Oostenryck1-3/+5
2021-04-17memops: do not mess up with phisource's source identLuc Van Oostenryck1-1/+0
2021-04-17memops: remove obsolete commentLuc Van Oostenryck1-4/+0
2021-04-17memops: find_dominating_parents()'s generation is redundantLuc Van Oostenryck1-8/+6
2021-04-17memops: dominates()'s first arg is redundantLuc Van Oostenryck3-12/+12
2021-04-17Merge branch 'deadstore'Luc Van Oostenryck4-11/+94
2021-04-17Merge branch 'linear'Luc Van Oostenryck1-1/+2
2021-04-17Merge branch 'untyped'Luc Van Oostenryck1-0/+11
2021-04-17TODO: add some notes about pseudos being typelessLuc Van Oostenryck1-0/+11
2021-04-17Merge branch 'schecker'Luc Van Oostenryck9-18/+499
2021-04-17scheck: predefine __SYMBOLIC_CHECKER__Luc Van Oostenryck1-0/+1
2021-04-13scheck: support pre-conditions via __assume()Luc Van Oostenryck3-9/+31
2021-04-13scheck: assert_const()Luc Van Oostenryck3-0/+21
2021-04-13scheck: allow multiple assertionsLuc Van Oostenryck2-6/+3
2021-04-13scheck: assert_eq()Luc Van Oostenryck3-0/+17
2021-04-13scheck: add a symbolic checkerLuc Van Oostenryck7-0/+356
2021-04-13.gitignore is a bit too greedyLuc Van Oostenryck1-17/+17
2021-04-13builtin: define a symbol_op for a generic op acting on integerLuc Van Oostenryck2-0/+65
2021-04-10linear: only allocate call instructions when neededLuc Van Oostenryck1-1/+2
2021-04-10export declare_builtins()Luc Van Oostenryck2-1/+3
2021-04-04fix null-pointer crash with with ident same as one of the attributesLuc Van Oostenryck2-1/+13
2021-04-02fix remove_merging_phisrc()Luc Van Oostenryck2-11/+20
2021-03-30Merge branch 'testsuite-extra' (early part)Luc Van Oostenryck1-0/+11
2021-03-28better check validity of phi-sourcesLuc Van Oostenryck1-8/+13
2021-03-28correctly count phi argumentsLuc Van Oostenryck2-1/+44
2021-03-26additional testcase for remove_merging_phisrc()Luc Van Oostenryck1-0/+24
2021-03-25kill redundant stores (local)Luc Van Oostenryck2-1/+5
2021-03-25kill parent's dead stores tooLuc Van Oostenryck3-2/+16
2021-03-25volatile stores are never deadLuc Van Oostenryck1-0/+2
2021-03-24extract try_to_kill_store() from kill_dominated_stores()Luc Van Oostenryck1-11/+19
2021-03-24add testcases for stores simplificationsLuc Van Oostenryck3-0/+55
2021-03-21let ssa_rename_phi() use insert_last_instruction()Luc Van Oostenryck1-3/+3
2021-03-21let find_dominating_parents() use insert_last_instruction()Luc Van Oostenryck1-5/+5
2021-03-21let insert_phis() use insert_last_instruction()Luc Van Oostenryck1-4/+3
2021-03-21let insert_select() use insert_last_instruction()Luc Van Oostenryck1-6/+1
2021-03-21replace add_instruction_to_end() by insert_last_instruction()Luc Van Oostenryck1-9/+1
2021-03-21add insert_last_instruction()Luc Van Oostenryck1-0/+8
2021-03-21testsuite: add option '-r' to 'test-suite format'Luc Van Oostenryck1-0/+11
2021-03-19fix phisources during SWITCH-BR conversionLuc Van Oostenryck2-1/+20
2021-03-19use convert_to_jump() when converting a CBR with same targetsLuc Van Oostenryck2-12/+2
2021-03-19fix phisources during CBR-BR conversionLuc Van Oostenryck3-2/+5
2021-03-19add remove_phisources()Luc Van Oostenryck2-0/+45
2021-03-19rename insert_branch() to convert_to_jump()Luc Van Oostenryck3-7/+7
2021-03-19let insert_branch() return a statusLuc Van Oostenryck3-17/+13
2021-03-19move insert_branch() to flow.cLuc Van Oostenryck4-27/+27
2021-03-19let insert_branch() reuse the terminating instructionLuc Van Oostenryck1-10/+6
2021-03-19fold remove_parent() into insert_branch()Luc Van Oostenryck1-6/+1
2021-03-19simplify remove_parent()Luc Van Oostenryck1-2/+0
2021-03-19remove insert_branch() redundant argLuc Van Oostenryck4-7/+8
2021-03-19add testcases to check if phi-sources from removed targets are removed tooLuc Van Oostenryck4-0/+78
2021-03-19Revert "simplify CBR-CBR on the same condition"Luc Van Oostenryck1-106/+0
2021-03-13canonicalize ((x & M) == M) --> ((x & M) != 0) when M is a power-of-2Luc Van Oostenryck2-0/+16
2021-03-12Merge branches 'fix-ssa' and 'cmp-and-or' into nextLuc Van Oostenryck9-4/+211
2021-03-10no needs to use MARK_CURRENT_DELETED() for multi-jumpsLuc Van Oostenryck1-1/+1
2021-03-10simplify (x | M) cmpu CLuc Van Oostenryck2-1/+16
2021-03-10simplify (x | M) cmps CLuc Van Oostenryck2-1/+14
2021-03-10simplify (x | M) {==,!=} CLuc Van Oostenryck2-1/+15
2021-03-10simplify (x & M) {==,!=} CLuc Van Oostenryck2-1/+8
2021-03-10simplify (x & M) cmps 0Luc Van Oostenryck2-1/+4
2021-03-10simplify (x & M) cmpu CLuc Van Oostenryck2-1/+16
2021-03-10simplify (x & M) cmps CLuc Van Oostenryck2-1/+25
2021-03-10add testcases for constant compares against AND/ORLuc Van Oostenryck7-0/+116
2021-03-10change testing of signed compares against SMIN or SMAXLuc Van Oostenryck1-4/+4
2021-03-09ssa: remove single store optimizationLuc Van Oostenryck1-64/+0
2021-03-09ssa: fix conversion with mismatched size or offsetLuc Van Oostenryck3-20/+80
2021-03-09ssa: avoid SSA conversion of packed bitfieldsLuc Van Oostenryck2-1/+3
2021-03-09ssa: the sparse set is not neededLuc Van Oostenryck4-92/+4
2021-03-09ssa: add some testcases for mismatched memopsLuc Van Oostenryck2-0/+85
2021-03-08Merge branch 'uniq-phinode'Luc Van Oostenryck9-65/+16
2021-03-08Merge branch 'ptrlist-generic'Luc Van Oostenryck4-25/+26
2021-03-08phi-sources can only have a single user (or none)Luc Van Oostenryck9-65/+16
2021-03-08ptrlist: change return value of linearize_ptr_list()/ptr_list_to_array()Luc Van Oostenryck2-7/+7
2021-03-06ptrlist: make linearize_ptr_list() genericLuc Van Oostenryck2-2/+8
2021-03-06ptrlist: use ptr_list_nth() instead of linearize_ptr_list()Luc Van Oostenryck1-12/+1
2021-03-06ptrlist: add pop_ptr_list()Luc Van Oostenryck1-0/+6
2021-03-06ptrlist: change TYPEOF() into PTRLIST_TYPE()Luc Van Oostenryck1-5/+5
2021-03-06ptrlist: remove one pointer level from TYPEOF()Luc Van Oostenryck1-4/+4
2021-03-05Merge branch 'slice'Luc Van Oostenryck7-16/+9
2021-03-04Merge branch 'path-norm'Luc Van Oostenryck1-0/+6
2021-03-01Merge branch 'fix-restrict' into nextLuc Van Oostenryck2-1/+23
2021-03-01pre-proc: do some path normalizationLuc Van Oostenryck1-0/+6
2021-02-28liveness: use 'src' for unops instead of 'src1'Luc Van Oostenryck1-1/+1
2021-02-28slice: display the source's size, like for unopsLuc Van Oostenryck1-1/+1
2021-02-28slice: OP_SLICE needs the source's type: make it a kind of unopLuc Van Oostenryck3-10/+5
2021-02-28slice: remove unneeded nr_nrbits from EXPR_SLICELuc Van Oostenryck3-3/+2
2021-02-28slice: remove unneeded len from OP_SLICELuc Van Oostenryck3-4/+3
2021-02-28asm-out0: fix a test failure on 32-bit systemsRamsay Jones1-1/+1
2021-02-28linearize.h: fix some 'selfcheck' warningsRamsay Jones1-2/+2
2021-02-25Merge branch 'objsize'Luc Van Oostenryck5-1/+144
2021-02-25Merge branch 'asm-dom'Luc Van Oostenryck5-24/+97
2021-02-25expand __builtin_object_size()Luc Van Oostenryck4-1/+140
2021-02-24fix eval of the assignment of a non-restricted value to a restricted variableLuc Van Oostenryck2-1/+23
2021-02-21asm-mem: teach dominates() about OP_ASMLuc Van Oostenryck2-1/+6
2021-02-21asm-mem: does it output to memory?Luc Van Oostenryck2-0/+2
2021-02-21asm-mem: does it clobber memory?Luc Van Oostenryck2-1/+8
2021-02-21asm-mem: add testcase for missing reload after asm memopsLuc Van Oostenryck1-0/+15
2021-02-21reorg dominates()Luc Van Oostenryck1-4/+7
2021-02-21asm: output *memory* operands need their address as *input*Luc Van Oostenryck2-9/+23
2021-02-21asm: factor out add_asm_rule() from add_asm_{in,out}put()Luc Van Oostenryck1-11/+12
2021-02-21asm: add testcase for problem with output addressesLuc Van Oostenryck1-0/+26
2021-02-08ptrlist: make ptr_list_nth_entry() generic with ptr_list_nth()Luc Van Oostenryck1-0/+4
2021-01-31Merge branch 'fix-join-cond'Luc Van Oostenryck2-2/+21
2021-01-31fix add_join_conditional() when one of the alternative is VOIDLuc Van Oostenryck2-2/+21
2021-01-28Merge branch 'optim-cmps'Luc Van Oostenryck8-19/+200
2021-01-27Makefile: fix version.h dependenciesKyle Russell6-6/+9
2021-01-26cmps: canonicalize SEL(x > 0, a, -a) --> SEL(x >= 0, a, -a)Luc Van Oostenryck2-1/+14
2021-01-26cmps: canonicalize SEL(x {<,<=} y, a, b) --> SEL(x {>=,>} y, b, a)Luc Van Oostenryck2-1/+7
2021-01-26cmps: canonicalize signed compares with constantLuc Van Oostenryck2-1/+2
2021-01-26cmps: canonicalize SMIN/SMAX +- 1 --> EQ/NELuc Van Oostenryck2-1/+8
2021-01-26cmps: canonicalize signed compares with SMIN/SMAXLuc Van Oostenryck2-1/+8
2021-01-26cmps: simplify signed compares with SMIN or SMAXLuc Van Oostenryck2-1/+17
2021-01-26cmps: add testcases for simplification of signed comparesLuc Van Oostenryck6-0/+106
2021-01-26cmpu: fix canonicalization of unsigned (x {<,>=} C) --> (x {<=,>} C-1)Luc Van Oostenryck1-2/+2
2021-01-26cmps: fix simplification of sext(x) + signed compare of {SMAX,SMIN}Luc Van Oostenryck2-13/+37
2021-01-26cmps: make clearer we're using the operands' sizeLuc Van Oostenryck1-4/+5
2021-01-25Merge branches 'fix-can-move-to' and 'asr-synth' into nextLuc Van Oostenryck2-1/+39
2021-01-24simplify LSR + SEXT into ASRLuc Van Oostenryck2-1/+39
2021-01-24fix possible circular definition with can_move_to()Luc Van Oostenryck1-0/+2
2021-01-23Merge branch 'unnamed-qual'Luc Van Oostenryck1-0/+28
2021-01-23Merge branch 'fix-sext-cmps'Luc Van Oostenryck1-0/+2
2021-01-22handle qualified anonymous structuresLuc Van Oostenryck1-0/+28
2021-01-17fix type of canonicalization of sext + unsigned compareLuc Van Oostenryck1-0/+2
2021-01-02removed an unused parameter for show_symbol_list()Bernd Petrovitsch3-4/+4
2021-01-02shut up a silly -Wmaybe-uninitialized warningLuc Van Oostenryck1-1/+1
2021-01-01Merge branch 'packed'Luc Van Oostenryck20-45/+447
2020-12-31Merge branches 'fix-rem-usage', 'ptrlist-no-mix' and 'diet-bb' into nextLuc Van Oostenryck3-19/+23
2020-12-29fix rem_usage()Luc Van Oostenryck1-1/+1
2020-12-29add helper has_definition()Luc Van Oostenryck1-0/+5
2020-12-29packed: add support for __packed structLuc Van Oostenryck10-13/+14
2020-12-29packed: no out-of-bound access of packed bitfieldsLuc Van Oostenryck2-2/+12
2020-12-29struct-attr: fix: do not ignore struct/union/enum type attributesLuc Van Oostenryck6-5/+2
2020-12-29struct-attr: fix type attribute like 'struct __attr { ... }'Luc Van Oostenryck1-1/+3
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (3)Luc Van Oostenryck1-9/+6
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (2)Luc Van Oostenryck1-13/+13
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (1)Luc Van Oostenryck2-7/+7
2020-12-29apply_ctype: move up its declarationLuc Van Oostenryck1-2/+2
2020-12-29apply_ctype: reverse the order of argumentsLuc Van Oostenryck1-4/+4
2020-12-29apply_ctype: use self-explanatory argument nameLuc Van Oostenryck1-10/+10
2020-12-29add testcases for packed bitfieldsLuc Van Oostenryck6-0/+172
2020-12-29add testcases for packed structuresLuc Van Oostenryck2-0/+57
2020-12-29add testcases for type attributesLuc Van Oostenryck4-0/+91
2020-12-29add testcases for enum attributesLuc Van Oostenryck1-0/+29
2020-12-29add testcases for exotic enum valuesLuc Van Oostenryck1-0/+28