aboutsummaryrefslogtreecommitdiffstats
path: root/validation
AgeCommit message (Expand)AuthorFilesLines
2022-08-22add "conditional context increment" modelLinus Torvalds1-0/+15
2022-06-27Merge branches 'unreplaced' and 'inline'Luc Van Oostenryck1-0/+13
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 Oostenryck2-0/+45
2022-06-07fix crash when inlining casts of erroneous expressionsLuc Van Oostenryck1-0/+15
2022-05-31Merge branch 'fixes' into masterLuc Van Oostenryck3-0/+29
2022-05-31fix zero/sign extension of integer character constantsLuc Van Oostenryck2-0/+18
2022-05-21fix infinite loop when expanding __builtin_object_size() with self-init varsLuc Van Oostenryck1-0/+11
2022-05-20parse: warn about a 'case label' on empty statementRamsay Jones1-0/+22
2022-05-20sparse: fix broken 'memcpy-max-count' checkRamsay Jones1-0/+28
2021-04-20Merge branches misc, cmp-pow2, optim-and-cmp, cmp-and-or and optim-cast-eval ...Luc Van Oostenryck8-24/+164
2021-04-19remove early simplification of casts during evaluationLuc Van Oostenryck2-2/+0
2021-04-19simplify TRUNC(NOT(x)) --> NOT(TRUNC(x))Luc Van Oostenryck1-1/+0
2021-04-18simplify AND(x >= 0, x < C) --> (unsigned)x < CLuc Van Oostenryck2-2/+0
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 Oostenryck1-0/+74
2021-04-18Merge branches 'fix-phisrc' and 'insert-last-insn' into memops-prepLuc Van Oostenryck6-0/+124
2021-04-18add testcases for simplification of casts.Luc Van Oostenryck4-24/+51
2021-04-17Merge branch 'deadstore'Luc Van Oostenryck3-0/+52
2021-04-17Merge branch 'schecker'Luc Van Oostenryck3-0/+38
2021-04-13scheck: support pre-conditions via __assume()Luc Van Oostenryck1-0/+6
2021-04-13scheck: assert_const()Luc Van Oostenryck1-0/+1
2021-04-13scheck: allow multiple assertionsLuc Van Oostenryck1-4/+0
2021-04-13scheck: assert_eq()Luc Van Oostenryck1-0/+5
2021-04-13scheck: add a symbolic checkerLuc Van Oostenryck3-0/+30
2021-04-04fix null-pointer crash with with ident same as one of the attributesLuc Van Oostenryck1-0/+12
2021-04-02fix remove_merging_phisrc()Luc Van Oostenryck1-1/+0
2021-03-30Merge branch 'testsuite-extra' (early part)Luc Van Oostenryck1-0/+11
2021-03-28correctly count phi argumentsLuc Van Oostenryck1-0/+27
2021-03-26additional testcase for remove_merging_phisrc()Luc Van Oostenryck1-0/+24
2021-03-25kill redundant stores (local)Luc Van Oostenryck1-1/+0
2021-03-25kill parent's dead stores tooLuc Van Oostenryck2-2/+0
2021-03-24add testcases for stores simplificationsLuc Van Oostenryck3-0/+55
2021-03-21testsuite: add option '-r' to 'test-suite format'Luc Van Oostenryck1-0/+11
2021-03-19fix phisources during SWITCH-BR conversionLuc Van Oostenryck1-1/+0
2021-03-19use convert_to_jump() when converting a CBR with same targetsLuc Van Oostenryck1-1/+0
2021-03-19fix phisources during CBR-BR conversionLuc Van Oostenryck2-2/+0
2021-03-19add testcases to check if phi-sources from removed targets are removed tooLuc Van Oostenryck4-0/+78
2021-03-13canonicalize ((x & M) == M) --> ((x & M) != 0) when M is a power-of-2Luc Van Oostenryck1-0/+12
2021-03-12Merge branches 'fix-ssa' and 'cmp-and-or' into nextLuc Van Oostenryck8-4/+113
2021-03-10no needs to use MARK_CURRENT_DELETED() for multi-jumpsLuc Van Oostenryck0-0/+0
2021-03-10simplify (x | M) cmpu CLuc Van Oostenryck1-1/+0
2021-03-10simplify (x | M) cmps CLuc Van Oostenryck1-1/+0
2021-03-10simplify (x | M) {==,!=} CLuc Van Oostenryck1-1/+0
2021-03-10simplify (x & M) {==,!=} CLuc Van Oostenryck1-1/+0
2021-03-10simplify (x & M) cmps 0Luc Van Oostenryck1-1/+0
2021-03-10simplify (x & M) cmpu CLuc Van Oostenryck1-1/+0
2021-03-10simplify (x & M) cmps CLuc Van Oostenryck1-1/+0
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: fix conversion with mismatched size or offsetLuc Van Oostenryck1-1/+0
2021-03-09ssa: avoid SSA conversion of packed bitfieldsLuc Van Oostenryck1-1/+0
2021-03-09ssa: add some testcases for mismatched memopsLuc Van Oostenryck2-0/+85
2021-03-01Merge branch 'fix-restrict' into nextLuc Van Oostenryck1-0/+22
2021-02-28asm-out0: fix a test failure on 32-bit systemsRamsay Jones1-1/+1
2021-02-25Merge branch 'objsize'Luc Van Oostenryck3-0/+68
2021-02-25expand __builtin_object_size()Luc Van Oostenryck3-0/+68
2021-02-24fix eval of the assignment of a non-restricted value to a restricted variableLuc Van Oostenryck1-0/+22
2021-02-21asm-mem: teach dominates() about OP_ASMLuc Van Oostenryck1-1/+0
2021-02-21asm-mem: add testcase for missing reload after asm memopsLuc Van Oostenryck1-0/+15
2021-02-21asm: output *memory* operands need their address as *input*Luc Van Oostenryck1-1/+0
2021-02-21asm: add testcase for problem with output addressesLuc Van Oostenryck1-0/+26
2021-01-31Merge branch 'fix-join-cond'Luc Van Oostenryck1-0/+19
2021-01-31fix add_join_conditional() when one of the alternative is VOIDLuc Van Oostenryck1-0/+19
2021-01-26cmps: canonicalize SEL(x > 0, a, -a) --> SEL(x >= 0, a, -a)Luc Van Oostenryck1-1/+0
2021-01-26cmps: canonicalize SEL(x {<,<=} y, a, b) --> SEL(x {>=,>} y, b, a)Luc Van Oostenryck1-1/+0
2021-01-26cmps: canonicalize signed compares with constantLuc Van Oostenryck1-1/+0
2021-01-26cmps: canonicalize SMIN/SMAX +- 1 --> EQ/NELuc Van Oostenryck1-1/+0
2021-01-26cmps: canonicalize signed compares with SMIN/SMAXLuc Van Oostenryck1-1/+0
2021-01-26cmps: simplify signed compares with SMIN or SMAXLuc Van Oostenryck1-1/+0
2021-01-26cmps: add testcases for simplification of signed comparesLuc Van Oostenryck6-0/+106
2021-01-26cmps: fix simplification of sext(x) + signed compare of {SMAX,SMIN}Luc Van Oostenryck1-11/+35
2021-01-24simplify LSR + SEXT into ASRLuc Van Oostenryck1-0/+27
2020-12-29packed: add support for __packed structLuc Van Oostenryck6-6/+0
2020-12-29struct-attr: fix: do not ignore struct/union/enum type attributesLuc Van Oostenryck5-5/+0
2020-12-29struct-attr: prepare to handle attributes at the end of struct definitions (1)Luc Van Oostenryck1-2/+2
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
2020-12-29add testcases for dubious enum valuesLuc Van Oostenryck1-0/+18
2020-12-11testsuite: fix parsing of tags used in the testcasesLuc Van Oostenryck3-4/+5
2020-12-10move check_access() to late_warnings()Luc Van Oostenryck1-0/+31
2020-12-02Merge branches 'fix-kill_dominated_stores' and 'kill-dead-loads' into nextLuc Van Oostenryck1-0/+22
2020-11-29memops: kill dead loads before phi-node conversionLuc Van Oostenryck1-0/+22
2020-11-28fix wrong killing of stores partially dominated by a loadLuc Van Oostenryck1-0/+29
2020-11-28Merge branch 'bit-trans' into nextLuc Van Oostenryck9-0/+228
2020-11-27convert SEL(x & BIT1, BIT2, 0) into SHIFT(x & BIT1, S)Luc Van Oostenryck1-1/+0
2020-11-27factorize SEL(x, OP(y,z), y) into OP(SEL(x, z, 0), y)Luc Van Oostenryck1-1/+0
2020-11-27add testscases for 'bits translation' optimizationLuc Van Oostenryck2-0/+44
2020-11-27factorize SHIFT(x, s) OP SHIFT(y, s) into SHIFT((x OP y), s)Luc Van Oostenryck3-3/+0
2020-11-27factorize (x OP1 z) OP2 (y OP1 z) into (x OP2 y) OP1 zLuc Van Oostenryck4-4/+0
2020-11-27add testscases for some factorization of distributive operationsLuc Van Oostenryck7-0/+193
2020-11-26fix trivial_phi() when the target is before the single valueLuc Van Oostenryck1-0/+20
2020-11-24Merge branch 'optim-not' into nextLuc Van Oostenryck8-11/+80
2020-11-22Merge branch 'optim-cgoto' into nextLuc Van Oostenryck3-0/+54
2020-11-22not: simplify ((x cmp y) {&,|,^} (x !cmp y)) --> {0,1,1}Luc Van Oostenryck1-1/+0
2020-11-22not: simplify (~x {&,|,^} x) --> {0,~0,~0}Luc Van Oostenryck1-1/+0
2020-11-22canon: put PSEUDO_REGs in canonical order tooLuc Van Oostenryck1-1/+0
2020-11-22canon: put PSEUDO_ARGs in canonical order tooLuc Van Oostenryck3-12/+11
2020-11-22not: add testcases for canonicalization & simplification of negationsLuc Van Oostenryck6-0/+73
2020-11-21add a new instruction for label-as-valueLuc Van Oostenryck1-1/+0
2020-11-21simplify CGOTO(SEL(x, L1, L2)) into CBR x, L1, L2Luc Van Oostenryck1-1/+0
2020-11-21simplify OP_COMPUTEDGOTO with unique and known targetLuc Van Oostenryck1-1/+0
2020-11-21add testcases for COMPUTEDGOTO simplificationLuc Van Oostenryck3-0/+57
2020-11-18unqual: statement expressions should drop qualifiersLuc Van Oostenryck1-1/+0
2020-11-18unqual: comma expressions should drop qualifiersLuc Van Oostenryck1-1/+0
2020-11-18unqual: add testcasesLuc Van Oostenryck4-0/+75
2020-11-18casts should drop qualifiersLuc Van Oostenryck1-0/+14
2020-11-17cfg: early CFG simplificationLuc Van Oostenryck9-11/+18
2020-11-17cfg: call simplify_memops() unconditionally.Luc Van Oostenryck2-0/+37
2020-11-17cfg: remove phi-sources when merging BBsLuc Van Oostenryck1-1/+0
2020-11-15cfg: add testcase for phi-adjusting during BB mergeLuc Van Oostenryck1-0/+24
2020-11-15testcase: avoid UNDEFLuc Van Oostenryck1-2/+3
2020-11-09Merge branch 'optim-cmp' into nextLuc Van Oostenryck16-111/+293
2020-11-08select: simplify select(x, x, 0) --> xLuc Van Oostenryck2-9/+3
2020-11-08select: simplify handling of select(x, 0, x) --> 0Luc Van Oostenryck1-0/+9
2020-11-08cmp: simplify compares and sign/zero extendLuc Van Oostenryck2-2/+0
2020-11-08cmp: simplify zext(x) cmpu CLuc Van Oostenryck1-1/+0
2020-11-08cmp: simplify zext(x) cmps CLuc Van Oostenryck1-1/+0
2020-11-08cmp: canonicalize sext(x) cmpu C (with C >= SMAX)Luc Van Oostenryck1-1/+0
2020-11-08cmp: simplify sext(x) cmps {SMAX,SMIN}Luc Van Oostenryck1-1/+0
2020-11-08cmp: simplify zext(x) cmp C --> x cmp CLuc Van Oostenryck3-3/+0
2020-11-08cmp: simplify sext(x) cmp C --> x cmp CLuc Van Oostenryck1-1/+0
2020-11-08cmp: canonicalize unsigned (x {<=,>} SMAX)Luc Van Oostenryck1-1/+0
2020-11-08cmp: canonicalize unsigned compare with UMAX or UMAX-1Luc Van Oostenryck1-1/+0
2020-11-08cmp: simplify unsigned (x {<=,>} UMAX) into {1,0}Luc Van Oostenryck1-1/+0
2020-11-08cmp: canonicalize unsigned (x {<,>=} C) --> (x {<=,>} C-1)Luc Van Oostenryck1-1/+0
2020-11-07simplify SEL(x == y, x, y) and friendsLuc Van Oostenryck1-0/+12
2020-11-07select: simplify SEL(SEL(x, C1, C2), y, z) --> y (with C1, C2 != 0)Luc Van Oostenryck1-1/+0
2020-11-07select: simplify SEL(SEL(x, C, 0), y, z) --> SEL(x, y, z) and its dualLuc Van Oostenryck2-2/+0
2020-11-07select: add some testcases for select simplificationLuc Van Oostenryck5-0/+54
2020-11-05cmp: add testcases for the simplification of comparesLuc Van Oostenryck15-0/+293
2020-11-02cmp: adapt testcase for compares' canonicalizationLuc Van Oostenryck1-111/+14
2020-11-01Merge branch 'typed-cmp'Luc Van Oostenryck3-0/+45
2020-11-01linearize __builtin_isdigit()Luc Van Oostenryck2-0/+22
2020-11-01fix usage count in linearize_fma()Luc Van Oostenryck1-1/+1
2020-11-01testsuite: add a new tag: check-output-returnsLuc Van Oostenryck2-0/+28
2020-11-01testsuite: add a new tag: check-output-matchLuc Van Oostenryck2-0/+39
2020-11-01eval_insn: give an explicit type to compare's operandsLuc Van Oostenryck2-2/+0
2020-11-01eval_insn: add testcases for incorrect type in OP_SET_*Luc Van Oostenryck3-0/+47
2020-10-27Merge branches 'cleanup-linearize', 'inline-use', 'inline-def', 'pure-call', ...Luc Van Oostenryck6-5/+43
2020-10-24Merge branches 'optim-setuimm' and 'optim-unop' into nextLuc Van Oostenryck8-0/+85
2020-10-24unop: simplify ~(-x) --> x - 1Luc Van Oostenryck1-1/+0
2020-10-24unop: simplify ~(x ^ C) --> x ^ ~CLuc Van Oostenryck1-1/+0
2020-10-24unop: simplify ~(C - x) --> x + ~CLuc Van Oostenryck1-1/+0
2020-10-24unop: simplify ~(x + C) --> ~C - xLuc Van Oostenryck1-1/+0
2020-10-24unop: simplify -(~x) --> x + 1Luc Van Oostenryck1-1/+0
2020-10-24unop: simplify -(x - y) --> y - xLuc Van Oostenryck1-1/+0
2020-10-24unop: simplify -(x + C) --> -C - xLuc Van Oostenryck1-1/+0
2020-10-23canonicalize unsigned compares against 0 or 1Luc Van Oostenryck1-1/+5
2020-10-23simplify unsigned compares against 0Luc Van Oostenryck1-0/+10
2020-10-23unop: add testcases for unop simplificationsLuc Van Oostenryck7-0/+78
2020-10-22warn on all missing parameter typesLuc Van Oostenryck5-5/+13
2020-10-22add testcase for missing inline definitionLuc Van Oostenryck1-0/+30
2020-10-22Merge branch 'optim-base' into nextLuc Van Oostenryck15-0/+156
2020-10-21optim: fix some testcases related to bitfield manipulationLuc Van Oostenryck2-5/+8
2020-10-20Merge branch 'bf-sign' into nextLuc Van Oostenryck6-20/+48
2020-10-20sub: simplify x + (y - x) --> yLuc Van Oostenryck1-1/+0
2020-10-20sub: simplify (x - y) + y --> xLuc Van Oostenryck1-1/+0
2020-10-20sub: simplify x - (y + x) --> -yLuc Van Oostenryck1-1/+0
2020-10-20sub: simplify x - (x + y) --> -yLuc Van Oostenryck1-1/+0
2020-10-20sub: simplify (x + y) - y --> xLuc Van Oostenryck1-1/+0
2020-10-20sub: simplify (x + y) - x --> yLuc Van Oostenryck1-1/+0
2020-10-20add: simplify (-x + y) --> (y - x)Luc Van Oostenryck1-1/+0
2020-10-20add: simplify (x + -y) --> (x - y)Luc Van Oostenryck1-1/+0
2020-10-20sub: simplify (x - -y) --> (x + y)Luc Van Oostenryck1-1/+0
2020-10-20sub: simplify (C - y) + D --> eval(C+D) - yLuc Van Oostenryck1-1/+0
2020-10-20sub: simplify C - (D - z) --> z + eval(C-D)Luc Van Oostenryck1-1/+0
2020-10-20sub: simplify C - (y + D) --> eval(C-D) - yLuc Van Oostenryck1-1/+0
2020-10-20sub: canonicalize (0 - x) into -xLuc Van Oostenryck1-1/+0
2020-10-20reassoc: simplify (x # C) # K --> x # eval(C # K)Luc Van Oostenryck1-1/+0
2020-10-20constants must be truncated to the operation's sizeLuc Van Oostenryck1-1/+0
2020-10-20add testcases about OP_ADD & OP_SUB simplificationsLuc Van Oostenryck15-0/+171
2020-10-19Merge branch 'builtin-atomic' into nextLuc Van Oostenryck2-0/+39
2020-10-19builtin: add support for __atomic_clear()Luc Van Oostenryck1-0/+15
2020-10-19builtin: evaluate __sync_*_fetch*()Luc Van Oostenryck1-0/+24
2020-10-19Merge branch 'warn-address-builtin' into nextLuc Van Oostenryck1-10/+15
2020-10-16fix null pointer deref on return expression with invalid typeLuc Van Oostenryck1-0/+9
2020-10-16warn when taking the address of a built-in functionLuc Van Oostenryck1-10/+15
2020-10-16testsuite: fix location of error messagesLuc Van Oostenryck1-3/+3
2020-10-14flex-array: fix typo in warning messageLuc Van Oostenryck1-2/+2
2020-10-09flex-array: fix location for nesting of flexible membersLuc Van Oostenryck1-2/+2
2020-10-09Merge branch 'misc'Luc Van Oostenryck1-1/+1
2020-10-09Merge branch 'usual-conv'Luc Van Oostenryck2-1/+11
2020-10-09flex-array: allow arrays of unions with flexible members.Ilya Maximets3-0/+31
2020-10-08fix usual conversion of integersLuc Van Oostenryck1-0/+11
2020-10-08fix evaluation of pointer to bool conversionsLuc Van Oostenryck1-1/+0
2020-10-06flex-array: remove unneeded testLuc Van Oostenryck1-22/+0
2020-10-01testsuite: fix erroneous commentLuc Van Oostenryck1-1/+1
2020-10-01flex-array: warn on flexible array in nested aggregate typesLuc Van Oostenryck1-1/+0
2020-10-01flex-array: warn an arrays containing a flexible arrayLuc Van Oostenryck1-1/+0
2020-10-01flex-array: warn when using sizeof() on a flexible arrayLuc Van Oostenryck1-1/+0
2020-10-01flex-array: warn if flexible array is not lastLuc Van Oostenryck1-1/+0
2020-10-01flex-array: flexible array members have zero size and alignment is OKLuc Van Oostenryck1-1/+0
2020-10-01flex-array: add testcasesLuc Van Oostenryck6-0/+133
2020-09-16teach sparse about -funsigned-bitfieldsLuc Van Oostenryck6-20/+48
2020-09-07builtin: teach sparse to linearize __builtin_fma()Luc Van Oostenryck1-0/+19
2020-08-18Merge branch 'union-cast' into masterLuc Van Oostenryck2-0/+47