aboutsummaryrefslogtreecommitdiffstatshomepage
AgeCommit message (Expand)AuthorFilesLines
2024-02-03Merge branch 'riscv'HEADmasterLuc Van Oostenryck1-1/+9
2024-01-29Merge branch 'llvm-next'Luc Van Oostenryck2-2/+2
2024-01-29llvm: allow arm64Luc Van Oostenryck1-1/+1
2024-01-29Merge branch 'llvm-15'Luc Van Oostenryck4-17/+58
2024-01-29llvm: avoid trivial recursion in symbol_type()Luc Van Oostenryck1-1/+1
2024-01-29llvm: fix LLVM 15 deprecation warningsLuc Van Oostenryck2-13/+38
2024-01-23riscv: G extension implies Zicsr & ZifenceiLuc Van Oostenryck1-1/+1
2024-01-23riscv: V extension implies F & DLuc Van Oostenryck1-1/+1
2024-01-23riscv: add predefines for v_min_vlen, v_elen & v_elen_fpLuc Van Oostenryck1-1/+5
2024-01-21RISC-V: Add basic support for the vector extensionConor Dooley1-0/+4
2024-01-20llvm: ensure SYM_NODE is stripped before accessing the return typeLuc Van Oostenryck1-0/+2
2024-01-20llvm: do not duplicate strings and use their length in struct stringLuc Van Oostenryck1-3/+5
2024-01-20llvm: add a few testcases for integer/pointer conversionLuc Van Oostenryck1-1/+10
2024-01-20llvm: suppress warnings about deprecated APILuc Van Oostenryck1-0/+3
2024-01-07Merge branches 'doc' and 'stray-t'Luc Van Oostenryck1-1/+1
2024-01-07testsuite: avoid "warning: stray \ before t" messageLuc Van Oostenryck1-1/+1
2024-01-07add .readthedocs.yamlLuc Van Oostenryck2-0/+32
2024-01-07doc: set 'en' as language in Sphinx's config fileLuc Van Oostenryck1-1/+1
2024-01-07doc: update conf.py for more recent version of sphinxLuc Van Oostenryck1-7/+1
2023-12-28reassoc: fix infinite loop during reassociationLuc Van Oostenryck2-4/+19
2023-12-18linearize.c: fix buffer overrun warning from fortifyJeff Layton1-1/+1
2023-12-18xtensa: switch to little endiannessGuennadi Liakhovetski1-1/+1
2023-12-18RISC-V: Add support for the zihintpause extensionPalmer Dabbelt1-0/+4
2023-12-18RISC-V: Add support for the zicbom extensionPalmer Dabbelt1-0/+4
2023-12-16Merge branch 'handle-cleanup-attr'Luc Van Oostenryck4-1/+66
2023-12-16parse: handle __cleanup__ attributeDan Carpenter4-2/+33
2023-12-16parse: add testcases for __cleanup__ attributeLuc Van Oostenryck1-0/+34
2022-06-27Merge branches 'unreplaced' and 'inline'Luc Van Oostenryck2-10/+26
2022-06-27inline: free symbol list after useLuc Van Oostenryck1-0/+1
2022-06-27inline: allocate statement after guardsLuc Van Oostenryck1-1/+2
2022-06-27inline: avoid needless intermediate varsLuc Van Oostenryck1-6/+3
2022-06-27inline: declaration of the variadic vars is uselessLuc Van Oostenryck1-2/+2
2022-06-27inline: comment about creating node of node on variadicsLuc Van Oostenryck1-1/+5
2022-06-26inline: add testcases for inlining of variadicsLuc Van Oostenryck1-0/+13
2022-06-24fix "unreplaced" warnings caused by using typeof() on inline functionsLuc Van Oostenryck3-1/+46
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