Age | Commit message (Expand) | Author | Files | Lines |
2020-11-22 | symaddr: give a type to OP_SYMADDR | Luc Van Oostenryck | 1 | -4/+4 |
2020-11-22 | Merge branch 'cleanup' into next | Luc Van Oostenryck | 3 | -21/+8 |
2020-11-22 | Merge branch 'optim-cgoto' into next | Luc Van Oostenryck | 12 | -6/+159 |
2020-11-22 | not: simplify ((x cmp y) {&,|,^} (x !cmp y)) --> {0,1,1} | Luc Van Oostenryck | 2 | -4/+21 |
2020-11-22 | not: simplify (~x {&,|,^} x) --> {0,~0,~0} | Luc Van Oostenryck | 2 | -4/+63 |
2020-11-22 | opcode: add helpers opcode_negate() & opcode_swap() | Luc Van Oostenryck | 1 | -0/+10 |
2020-11-22 | canon: simplify calculation of canonical order | Luc Van Oostenryck | 2 | -15/+29 |
2020-11-22 | canon: put PSEUDO_REGs in canonical order too | Luc Van Oostenryck | 2 | -1/+3 |
2020-11-22 | canon: put PSEUDO_ARGs in canonical order too | Luc Van Oostenryck | 4 | -12/+14 |
2020-11-22 | not: add testcases for canonicalization & simplification of negations | Luc Van Oostenryck | 6 | -0/+73 |
2020-11-21 | add a new instruction for label-as-value | Luc Van Oostenryck | 10 | -17/+63 |
2020-11-21 | simplify CGOTO(SEL(x, L1, L2)) into CBR x, L1, L2 | Luc Van Oostenryck | 2 | -1/+22 |
2020-11-21 | simplify OP_COMPUTEDGOTO with unique and known target | Luc Van Oostenryck | 2 | -1/+30 |
2020-11-21 | simplify kill_insn() of unops and unop-ish instructions | Luc Van Oostenryck | 1 | -13/+5 |
2020-11-21 | remove unneeded REPEAT_SYMBOL_CLEANUP | Luc Van Oostenryck | 3 | -8/+3 |
2020-11-21 | fix kill_insn(OP_SETVAL) | Luc Van Oostenryck | 1 | -1/+1 |
2020-11-21 | add testcases for COMPUTEDGOTO simplification | Luc Van Oostenryck | 3 | -0/+57 |
2020-11-19 | Merge branches 'cleanup-postop' and 'cleanup-linearize' | Luc Van Oostenryck | 2 | -6/+1 |
2020-11-19 | Merge branch 'diamond' | Luc Van Oostenryck | 2 | -2/+114 |
2020-11-19 | simplify unrestricted postop | Luc Van Oostenryck | 1 | -2/+1 |
2020-11-19 | Merge branch 'unqual' | Luc Van Oostenryck | 5 | -2/+77 |
2020-11-18 | unqual: statement expressions should drop qualifiers | Luc Van Oostenryck | 2 | -2/+1 |
2020-11-18 | unqual: comma expressions should drop qualifiers | Luc Van Oostenryck | 2 | -2/+1 |
2020-11-18 | unqual: unqualify_type() should check for null ctypes | Luc Van Oostenryck | 1 | -0/+2 |
2020-11-18 | unqual: add testcases | Luc Van Oostenryck | 4 | -0/+75 |
2020-11-18 | casts should drop qualifiers | Luc Van Oostenryck | 2 | -0/+27 |
2020-11-17 | linearize: remove unneeded forward declarations | Luc Van Oostenryck | 1 | -4/+0 |
2020-11-17 | Merge branch 'pack-early' | Luc Van Oostenryck | 18 | -39/+269 |
2020-11-17 | simplify CBR-CBR on the same condition | Luc Van Oostenryck | 1 | -0/+106 |
2020-11-17 | rebuild dominance tree during CFG cleanup | Luc Van Oostenryck | 1 | -2/+8 |
2020-11-17 | cfg: early CFG simplification | Luc Van Oostenryck | 12 | -11/+102 |
2020-11-17 | cfg: call simplify_memops() unconditionally. | Luc Van Oostenryck | 4 | -3/+40 |
2020-11-17 | cfg: add missing REPEAT_CFG_CLEANUP | Luc Van Oostenryck | 2 | -1/+2 |
2020-11-17 | cfg: remove phi-nodes when merging BBs | Luc Van Oostenryck | 1 | -0/+23 |
2020-11-17 | cfg: remove phi-sources when merging BBs | Luc Van Oostenryck | 2 | -1/+42 |
2020-11-15 | cfg: extract merge_bb() from pack_basic_blocks() | Luc Van Oostenryck | 1 | -23/+35 |
2020-11-15 | cfg: add testcase for phi-adjusting during BB merge | Luc Van Oostenryck | 1 | -0/+24 |
2020-11-15 | testcase: avoid UNDEF | Luc Van Oostenryck | 1 | -2/+3 |
2020-11-14 | doc: add header for flow simplification related documentation | Luc Van Oostenryck | 2 | -3/+5 |
2020-11-16 | doc: add header for optimization related documentation | Luc Van Oostenryck | 2 | -2/+7 |
2020-11-16 | doc: add some doc to flowgraph.h | Luc Van Oostenryck | 2 | -0/+21 |
2020-11-16 | doc: fix extracted autodoc when short description ends with a ? | Luc Van Oostenryck | 1 | -2/+3 |
2020-11-16 | doc: add some doc about using NULL or VOID in ptrlists | Luc Van Oostenryck | 1 | -0/+12 |
2020-11-16 | doc: Sphinx's option ':noindex:' have been renamed into ':noindexentry:' | Luc Van Oostenryck | 1 | -1/+1 |
2020-11-12 | linearize: fix a couple of 'selfcheck' warnings | Ramsay Jones | 1 | -0/+2 |
2020-11-11 | Merge branch 'debug' | Luc Van Oostenryck | 3 | -3/+20 |
2020-11-09 | Merge branch 'optim-cmp' into next | Luc Van Oostenryck | 20 | -237/+582 |
2020-11-09 | Merge branch 'optim-sel' into next | Luc Van Oostenryck | 9 | -21/+122 |
2020-11-09 | fix linear_isdigit()'s itype | Luc Van Oostenryck | 1 | -0/+1 |
2020-11-08 | select: simplify select(x, x, 0) --> x | Luc Van Oostenryck | 3 | -9/+5 |
2020-11-08 | select: simplify handling of select(x, 0, x) --> 0 | Luc Van Oostenryck | 2 | -5/+11 |
2020-11-08 | cmp: simplify compares and sign/zero extend | Luc Van Oostenryck | 3 | -12/+42 |
2020-11-08 | cmp: simplify zext(x) cmpu C | Luc Van Oostenryck | 2 | -1/+4 |
2020-11-08 | cmp: simplify zext(x) cmps C | Luc Van Oostenryck | 2 | -1/+14 |
2020-11-08 | cmp: canonicalize sext(x) cmpu C (with C >= SMAX) | Luc Van Oostenryck | 2 | -1/+12 |
2020-11-08 | cmp: simplify sext(x) cmps {SMAX,SMIN} | Luc Van Oostenryck | 2 | -1/+14 |
2020-11-08 | cmp: simplify zext(x) cmp C --> x cmp C | Luc Van Oostenryck | 4 | -3/+11 |
2020-11-08 | cmp: simplify sext(x) cmp C --> x cmp C | Luc Van Oostenryck | 2 | -1/+24 |
2020-11-08 | cmp: canonicalize unsigned (x {<=,>} SMAX) | Luc Van Oostenryck | 2 | -1/+4 |
2020-11-08 | cmp: canonicalize unsigned compare with UMAX or UMAX-1 | Luc Van Oostenryck | 2 | -1/+8 |
2020-11-08 | cmp: simplify unsigned (x {<=,>} UMAX) into {1,0} | Luc Van Oostenryck | 2 | -1/+5 |
2020-11-08 | cmp: canonicalize unsigned (x {<,>=} C) --> (x {<=,>} C-1) | Luc Van Oostenryck | 2 | -2/+7 |
2020-11-08 | cmp: use a few helpers for the simplification of compares | Luc Van Oostenryck | 1 | -20/+32 |
2020-11-08 | cmp: move some code in a separate function: simplify_compare_constant() | Luc Van Oostenryck | 1 | -31/+43 |
2020-11-08 | cmp: add signed/unsigned to opcode table | Luc Van Oostenryck | 3 | -85/+90 |
2020-11-07 | simplify SEL(x == y, x, y) and friends | Luc Van Oostenryck | 2 | -0/+24 |
2020-11-07 | select: simplify handling of constant cond or src1 == src2 | Luc Van Oostenryck | 1 | -8/+6 |
2020-11-07 | select: simplify SEL(SEL(x, C1, C2), y, z) --> y (with C1, C2 != 0) | Luc Van Oostenryck | 2 | -1/+3 |
2020-11-07 | select: simplify SEL(SEL(x, C, 0), C, 0) --> SEL(x, C, 0) == cond | Luc Van Oostenryck | 1 | -0/+3 |
2020-11-07 | select: simplify SEL(SEL(x, C, 0), y, z) --> SEL(x, y, z) and its dual | Luc Van Oostenryck | 3 | -2/+20 |
2020-11-07 | select: add some testcases for select simplification | Luc Van Oostenryck | 5 | -0/+54 |
2020-11-05 | cmp: add testcases for the simplification of compares | Luc Van Oostenryck | 15 | -0/+293 |
2020-11-02 | cmp: adapt testcase for compares' canonicalization | Luc Van Oostenryck | 1 | -111/+14 |
2020-11-01 | Merge branch 'typed-cmp' | Luc Van Oostenryck | 7 | -5/+75 |
2020-11-01 | linearize __builtin_isdigit() | Luc Van Oostenryck | 4 | -0/+65 |
2020-11-01 | fix usage count in linearize_fma() | Luc Van Oostenryck | 2 | -4/+4 |
2020-11-01 | fix init_linearized_builtins() | Luc Van Oostenryck | 1 | -1/+1 |
2020-11-01 | testsuite: add a new tag: check-output-returns | Luc Van Oostenryck | 3 | -0/+33 |
2020-11-01 | testsuite: add a new tag: check-output-match | Luc Van Oostenryck | 3 | -0/+47 |
2020-11-01 | do not call simplify_instruction() if already removed | Luc Van Oostenryck | 2 | -3/+2 |
2020-11-07 | add debug helpers: show_insn_bb() & show_insn_entry() | Luc Van Oostenryck | 1 | -0/+18 |
2020-11-01 | eval_insn: give an explicit type to compare's operands | Luc Van Oostenryck | 6 | -7/+30 |
2020-11-01 | eval_insn: add testcases for incorrect type in OP_SET_* | Luc Van Oostenryck | 3 | -0/+47 |
2020-10-27 | Merge branch 'one_use' | Luc Van Oostenryck | 2 | -11/+11 |
2020-10-27 | replace nbr_users() & multi_users() by one_use() | Luc Van Oostenryck | 2 | -11/+11 |
2020-10-27 | Merge branches 'cleanup-linearize', 'inline-use', 'inline-def', 'pure-call', ... | Luc Van Oostenryck | 10 | -70/+71 |
2020-10-26 | handle more graciously labels with no statement | Luc Van Oostenryck | 1 | -0/+5 |
2020-10-25 | fix testing if a OP_CALL's function is pure | Luc Van Oostenryck | 1 | -3/+3 |
2020-10-25 | add helper first_symbol() | Luc Van Oostenryck | 1 | -0/+5 |
2020-10-25 | kill dead instructions before any other simplifications | Luc Van Oostenryck | 1 | -46/+5 |
2020-10-25 | OP_CALL should use the full function type | Luc Van Oostenryck | 1 | -2/+0 |
2020-10-25 | linearize: OP_INLINE should not use the function symbol | Luc Van Oostenryck | 1 | -1/+1 |
2020-10-24 | Merge branches 'optim-setuimm' and 'optim-unop' into next | Luc Van Oostenryck | 9 | -5/+163 |
2020-10-24 | Merge branch 'fix-llvm-11' into next | Luc Van Oostenryck | 1 | -46/+29 |
2020-10-24 | unop: simplify ~(-x) --> x - 1 | Luc Van Oostenryck | 2 | -1/+4 |
2020-10-24 | unop: simplify ~(x ^ C) --> x ^ ~C | Luc Van Oostenryck | 2 | -1/+6 |
2020-10-24 | unop: simplify ~(C - x) --> x + ~C | Luc Van Oostenryck | 2 | -1/+6 |
2020-10-24 | unop: simplify ~(x + C) --> ~C - x | Luc Van Oostenryck | 2 | -1/+7 |
2020-10-24 | unop: simplify -(~x) --> x + 1 | Luc Van Oostenryck | 2 | -1/+4 |
2020-10-24 | unop: simplify -(x - y) --> y - x | Luc Van Oostenryck | 2 | -1/+4 |
2020-10-24 | unop: simplify -(x + C) --> -C - x | Luc Van Oostenryck | 2 | -1/+7 |
2020-10-24 | unop: prepare simplify_unop() to handle more cases | Luc Van Oostenryck | 1 | -5/+10 |
2020-10-23 | canonicalize unsigned compares against 0 or 1 | Luc Van Oostenryck | 2 | -1/+25 |
2020-10-23 | simplify unsigned compares against 0 | Luc Van Oostenryck | 2 | -0/+20 |
2020-10-23 | cleanup linearize_cond_branch() | Luc Van Oostenryck | 1 | -12/+5 |
2020-10-23 | unop: add testcases for unop simplifications | Luc Van Oostenryck | 7 | -0/+78 |
2020-10-23 | llvm: fix crash with llvm-11 / use real phi-nodes | Luc Van Oostenryck | 1 | -46/+29 |
2020-10-22 | warn on all missing parameter types | Luc Van Oostenryck | 6 | -6/+22 |
2020-10-22 | add testcase for missing inline definition | Luc Van Oostenryck | 1 | -0/+30 |
2020-10-22 | memops need long offsets | Luc Van Oostenryck | 2 | -4/+4 |
2020-10-22 | Merge branch 'optim-base' into next | Luc Van Oostenryck | 18 | -64/+397 |
2020-10-21 | optim: fix some testcases related to bitfield manipulation | Luc Van Oostenryck | 2 | -5/+8 |
2020-10-20 | Merge branch 'bf-sign' into next | Luc Van Oostenryck | 10 | -22/+60 |
2020-10-20 | sub: simplify x + (y - x) --> y | Luc Van Oostenryck | 2 | -1/+4 |
2020-10-20 | sub: simplify (x - y) + y --> x | Luc Van Oostenryck | 2 | -1/+5 |
2020-10-20 | sub: simplify x - (y + x) --> -y | Luc Van Oostenryck | 2 | -1/+2 |
2020-10-20 | sub: simplify x - (x + y) --> -y | Luc Van Oostenryck | 2 | -1/+4 |
2020-10-20 | sub: simplify (x + y) - y --> x | Luc Van Oostenryck | 2 | -1/+2 |
2020-10-20 | sub: simplify (x + y) - x --> y | Luc Van Oostenryck | 2 | -1/+8 |
2020-10-20 | add: simplify (-x + y) --> (y - x) | Luc Van Oostenryck | 2 | -1/+8 |
2020-10-20 | add: simplify (x + -y) --> (x - y) | Luc Van Oostenryck | 2 | -2/+15 |
2020-10-20 | sub: simplify (x - -y) --> (x + y) | Luc Van Oostenryck | 2 | -2/+15 |
2020-10-20 | sub: simplify (C - y) + D --> eval(C+D) - y | Luc Van Oostenryck | 2 | -1/+20 |
2020-10-20 | sub: simplify C - (D - z) --> z + eval(C-D) | Luc Van Oostenryck | 2 | -1/+8 |
2020-10-20 | sub: simplify C - (y + D) --> eval(C-D) - y | Luc Van Oostenryck | 2 | -1/+18 |
2020-10-20 | sub: canonicalize (0 - x) into -x | Luc Van Oostenryck | 2 | -1/+4 |
2020-10-20 | sub: reorganize handling of OP_{ADD,SUB}s with constant rightside | Luc Van Oostenryck | 1 | -9/+11 |
2020-10-20 | reassoc: simplify (x # C) # K --> x # eval(C # K) | Luc Van Oostenryck | 2 | -1/+5 |
2020-10-20 | constants must be truncated to the operation's size | Luc Van Oostenryck | 2 | -2/+1 |
2020-10-20 | add a flag to identify commutative & associative ops | Luc Van Oostenryck | 3 | -48/+76 |
2020-10-20 | unop: add helper replace_with_unop() | Luc Van Oostenryck | 1 | -0/+14 |
2020-10-20 | unop: add helper eval_unop() | Luc Van Oostenryck | 1 | -0/+12 |
2020-10-20 | extract eval_op() from eval_insn() | Luc Van Oostenryck | 1 | -5/+9 |
2020-10-20 | let switch_pseudo() return REPEAT_CSE | Luc Van Oostenryck | 1 | -1/+2 |
2020-10-20 | add testcases about OP_ADD & OP_SUB simplifications | Luc Van Oostenryck | 15 | -0/+171 |
2020-10-19 | Merge branch 'builtin-atomic' into next | Luc Van Oostenryck | 6 | -32/+136 |
2020-10-19 | builtin: add support for remaining atomic builtins | Luc Van Oostenryck | 1 | -0/+5 |
2020-10-19 | builtin: add support for __atomic_clear() | Luc Van Oostenryck | 2 | -0/+16 |
2020-10-19 | builtin: add builtin type: [volatile] pointer to bool | Luc Van Oostenryck | 2 | -0/+4 |
2020-10-19 | builtin: add support for others generic atomic builtins | Luc Van Oostenryck | 1 | -0/+10 |
2020-10-19 | builtin: add support for __atomic_add_fetch(), ... | Luc Van Oostenryck | 1 | -0/+12 |
2020-10-19 | builtin: add predefines for __ATOMIC_RELAXED & friends | Luc Van Oostenryck | 1 | -0/+7 |
2020-10-19 | builtin: __sync_synchronize() too is variadic | Luc Van Oostenryck | 1 | -1/+1 |
2020-10-19 | builtin: fix evaluation of __sync_lock_release | Luc Van Oostenryck | 1 | -1/+1 |
2020-10-19 | builtin: evaluate __sync_*_fetch*() | Luc Van Oostenryck | 2 | -13/+37 |
2020-10-19 | builtin: make eval_sync_compare_and_swap() more generic | Luc Van Oostenryck | 1 | -17/+32 |
2020-10-19 | Merge branch 'warn-address-builtin' into next | Luc Van Oostenryck | 2 | -10/+19 |
2020-10-18 | Sparse v0.6.3v0.6.3 | Luc Van Oostenryck | 2 | -3/+4 |
2020-10-16 | fix null pointer deref on return expression with invalid type | Luc Van Oostenryck | 2 | -1/+10 |
2020-10-16 | warn when taking the address of a built-in function | Luc Van Oostenryck | 2 | -10/+19 |
2020-10-16 | testsuite: fix location of error messages | Luc Van Oostenryck | 1 | -3/+3 |
2020-10-14 | update TODO list | Luc Van Oostenryck | 1 | -8/+21 |
2020-10-14 | flex-array: fix typo in warning message | Luc Van Oostenryck | 2 | -3/+3 |
2020-10-14 | builtin: add builtin type for volatile void * | Luc Van Oostenryck | 2 | -0/+4 |
2020-10-14 | builtin: add generic .args method | Luc Van Oostenryck | 1 | -0/+7 |
2020-10-12 | Sparse v0.6.3-rc1v0.6.3-rc1 | Luc Van Oostenryck | 2 | -1/+2 |
2020-10-12 | doc: add release notes for incoming v0.6.3 | Luc Van Oostenryck | 1 | -4/+54 |
2020-10-11 | Merge branch 'more-builtin' (early part) | Luc Van Oostenryck | 1 | -0/+8 |
2020-10-09 | builtin: teach sparse about __builtin_ia32_pause() | Luc Van Oostenryck | 1 | -0/+8 |
2020-10-09 | flex-array: fix location for nesting of flexible members | Luc Van Oostenryck | 2 | -3/+3 |
2020-10-09 | Merge branch 'misc' | Luc Van Oostenryck | 5 | -9/+5 |
2020-10-09 | Merge branch 'usual-conv' | Luc Van Oostenryck | 3 | -32/+47 |
2020-10-09 | flex-array: allow arrays of unions with flexible members. | Ilya Maximets | 7 | -1/+44 |
2020-10-08 | fix usual conversion of integers | Luc Van Oostenryck | 2 | -31/+45 |
2020-10-08 | fix evaluation of pointer to bool conversions | Luc Van Oostenryck | 2 | -1/+2 |
2020-10-08 | build: rule for validation needs to be FORCEd | Luc Van Oostenryck | 1 | -1/+1 |
2020-10-08 | add helpers is_struct_type() & is_union_type() | Ilya Maximets | 1 | -0/+14 |
2020-10-06 | unop: fix access to defining instruction in simplify_unop() | Luc Van Oostenryck | 1 | -4/+2 |
2020-10-06 | remove definition of removed OP_{AND,OR}_BOOL | Luc Van Oostenryck | 1 | -2/+0 |
2020-10-06 | Merge branch 'flex-array-base' | Luc Van Oostenryck | 11 | -18/+177 |
2020-10-06 | flex-array: remove unneeded test | Luc Van Oostenryck | 1 | -22/+0 |
2020-10-04 | add builtin types for size_t*, intmax_t* & ptrdiff_t* | Luc Van Oostenryck | 2 | -0/+9 |
2020-10-04 | add builtin types for signed char* and short * | Luc Van Oostenryck | 2 | -0/+4 |
2020-10-04 | add builtin type for wide strings | Luc Van Oostenryck | 2 | -0/+9 |
2020-10-01 | testsuite: fix erroneous comment | Luc Van Oostenryck | 1 | -1/+1 |
2020-10-01 | fix Hurd PATH_MAX ... | Luc Van Oostenryck | 1 | -1/+1 |
2020-10-01 | flex-array: warn on flexible array in nested aggregate types | Luc Van Oostenryck | 5 | -1/+14 |
2020-10-01 | flex-array: warn an arrays containing a flexible array | Luc Van Oostenryck | 5 | -1/+12 |
2020-10-01 | flex-array: warn when using sizeof() on a flexible array | Luc Van Oostenryck | 5 | -1/+13 |
2020-10-01 | flex-array: add helper has_flexible_array() | Luc Van Oostenryck | 1 | -0/+7 |
2020-10-01 | flex-array: identify structures with a flexible array member | Luc Van Oostenryck | 2 | -0/+7 |
2020-10-01 | flex-array: warn if flexible array is not last | Luc Van Oostenryck | 2 | -1/+2 |
2020-10-01 | flex-array: warn on flexible arrays in unions | Luc Van Oostenryck | 1 | -0/+3 |
2020-10-01 | flex-array: detect structures with a flexible array member | Luc Van Oostenryck | 1 | -0/+2 |
2020-10-01 | flex-array: flexible array members have zero size and alignment is OK | Luc Van Oostenryck | 2 | -2/+0 |
2020-10-01 | flex-array: do not lay out invalid struct members | Luc Van Oostenryck | 1 | -2/+4 |
2020-10-01 | flex-array: factor out common part of lay_out_{struct,union}() | Luc Van Oostenryck | 1 | -16/+8 |
2020-10-01 | flex-array: add testcases | Luc Van Oostenryck | 6 | -0/+133 |
2020-09-16 | teach sparse about -funsigned-bitfields | Luc Van Oostenryck | 10 | -22/+60 |
2020-09-07 | Merge branch 'linear-fma' into next | Luc Van Oostenryck | 5 | -2/+57 |
2020-09-07 | builtin: teach sparse to linearize __builtin_fma() | Luc Van Oostenryck | 2 | -0/+39 |
2020-09-07 | builtin: add declaration for __builtin_fma{,f,l}() | Luc Van Oostenryck | 1 | -0/+3 |
2020-09-07 | builtin: allow linearization to fail | Luc Van Oostenryck | 1 | -2/+5 |
2020-09-07 | add support for a new instruction: OP_FMADD | Luc Van Oostenryck | 3 | -0/+10 |
2020-09-07 | Merge branch 'replace-with-val' into next | Luc Van Oostenryck | 1 | -14/+15 |
2020-09-06 | testsuite: easier testing via script & makefile | Luc Van Oostenryck | 1 | -2/+2 |
2020-09-05 | replace_with_{pseudo,value}() can be tail-calls | Luc Van Oostenryck | 1 | -8/+4 |
2020-09-05 | use replace_with_value() | Luc Van Oostenryck | 1 | -8/+8 |
2020-09-05 | add helper replace_with_value() | Luc Van Oostenryck | 1 | -0/+5 |
2020-08-18 | Merge branch 'union-cast' into master | Luc Van Oostenryck | 7 | -20/+129 |