aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
2018-03-02simplify cast of constant using wrong sizemerge-luc-masterChristopher Li1-1/+1
2018-03-02Merge remote-tracking branch 'luc/master' into merge-luc-masterChristopher Li245-1782/+7328
2018-02-27testsuite: add testcase about CSE problemLuc Van Oostenryck1-0/+18
2018-02-27testsuite: add testcase for some random crashLuc Van Oostenryck1-0/+11
2018-02-27Fix crash cause by previous pseudo size changeChristopher Li1-5/+3
2018-02-24remove unneeded cast in calls to free_ptr_list()Luc Van Oostenryck2-2/+2
2018-02-24fix accesses through incorrect union membersJann Horn2-7/+7
2018-02-24move the inner optimization loop into the main loopLuc Van Oostenryck1-19/+12
2018-02-24move inner optimization loop into optimize.cLuc Van Oostenryck3-37/+38
2018-02-24move liveness interface to its own headerLuc Van Oostenryck4-4/+13
2018-02-24expose interface to CSELuc Van Oostenryck2-2/+14
2018-02-24extract cse_eliminate() from cleanup_and_cse()Luc Van Oostenryck1-7/+13
2018-02-24cse: untangle simplification & hashingLuc Van Oostenryck1-8/+6
2018-02-24move the optimization loop in its own fileLuc Van Oostenryck4-62/+88
2018-02-24rename variable 'optimize' to 'optimize_level'Luc Van Oostenryck2-4/+4
2018-02-24testsuite: fix typo with 'test-suite format -a'Luc Van Oostenryck1-1/+1
2018-02-24'amd64' is also ok for sparse-llvmLuc Van Oostenryck1-1/+1
2018-02-24Update gcc attribute listChristopher Li1-0/+11
2018-02-24sparse: ignore indirect_branch attributeRandy Dunlap1-0/+1
2018-02-23Merge remote-tracking branch 'chrisl/pseudo-sized-value-v2'Christopher Li6-32/+44
2018-02-20ban use of 'true' or 'false'Luc Van Oostenryck10-70/+68
2018-02-20build: use -MMD for generated dependenciesLuc Van Oostenryck1-2/+2
2018-02-20build: add -MP for generated dependenciesLuc Van Oostenryck1-2/+2
2018-02-20use '%lld' for printing long longsLuc Van Oostenryck1-2/+2
2018-02-20no need for signed & unsigned multiplicationLuc Van Oostenryck9-34/+19
2018-02-20unsigned multiplication is also associativeLuc Van Oostenryck1-1/+1
2018-02-17builtin: add testcases for expansion of FP classificationLuc Van Oostenryck4-0/+86
2018-02-17builtin: add testcases for expansion of special FP constantsLuc Van Oostenryck2-0/+62
2018-02-17builtin: add typechecking of isnan(), isinf(), ...Luc Van Oostenryck2-0/+125
2018-02-17builtin: extract eval_args() from arguments_choose()Luc Van Oostenryck1-19/+30
2018-02-17builtin: make builtins more builtinLuc Van Oostenryck4-155/+187
2018-02-17builtin: add ctype for const {void,char} *Luc Van Oostenryck2-0/+9
2018-02-17add __builtin functions for isinf_sign, isfinite and isnanLogan Gunthorpe2-0/+6
2018-02-17rename base_type() to bitfield_base_type()Luc Van Oostenryck1-5/+5
2018-02-17let struct access_data use a single typeLuc Van Oostenryck1-23/+21
2018-02-17use show_pseudo() for OP_SYMADDR's symbolLuc Van Oostenryck1-16/+3
2018-02-17show_pseudo(): protect against NULL ->symLuc Van Oostenryck1-0/+4
2018-02-17llvm: initialize at declaration timeLuc Van Oostenryck1-12/+5
2018-02-17llvm: use list_size() to count the numbers of argumentsLuc Van Oostenryck1-7/+2
2018-02-16cleanup: remove unused 'struct pseudo_ptr_list'Luc Van Oostenryck1-6/+0
2018-02-16Merge branches 'fix-converted-loads', 'kill-deadborn-loads', 'kill-dead-loads...Luc Van Oostenryck10-49/+112
2018-02-16no repetition in unknown attribute warning messageLuc Van Oostenryck2-2/+2
2018-02-15By default disable the warning flag '-Wunknown-attribute'Luc Van Oostenryck2-5/+1
2018-02-14fix: missing evaluate with '-include'Luc Van Oostenryck2-1/+14
2018-02-14fix: missing evaluate with '-include' : add testcaseLuc Van Oostenryck2-0/+19
2018-02-14kill dead stores when simplifying symbolsLuc Van Oostenryck3-24/+5
2018-02-14kill dead loadsLuc Van Oostenryck3-1/+41
2018-02-14fix usage of deadborn loadsLuc Van Oostenryck2-1/+10
2018-02-14fix killing of converted loadsLuc Van Oostenryck3-4/+26
2018-02-14add testcases for converted loadsLuc Van Oostenryck1-0/+15
2018-02-13sparse: ignore indirect_branch attributeRandy Dunlap1-0/+1
2018-02-13let kill_instruction() report if changes were madeLuc Van Oostenryck2-14/+13
2018-02-13use has_users() in dead_insn() tooLuc Van Oostenryck1-5/+2
2018-02-13add helper: has_users()Luc Van Oostenryck1-0/+5
2018-02-13add helper for pseudo's user-list's sizeLuc Van Oostenryck2-2/+7
2018-02-11add testcase for bad killing of dominated storesLuc Van Oostenryck1-0/+16
2018-02-11fix missing checks for deleted instructionsLuc Van Oostenryck2-4/+31
2018-02-10fix dead dominatorLuc Van Oostenryck2-2/+1
2018-02-10add testcase of dead dominatorLuc Van Oostenryck1-0/+19
2018-02-08Merge branches 'cse-setfval' and 'extract-eval' into tipLuc Van Oostenryck14-203/+331
2018-02-06extract extract eval_insn() from simplify_constant_binop()Luc Van Oostenryck1-113/+128
2018-02-05fix examination of bad typeofLuc Van Oostenryck2-1/+20
2018-02-01always evaluate both operandsLuc Van Oostenryck1-9/+9
2018-02-01do not report bad types twiceLuc Van Oostenryck2-2/+6
2018-02-01add helpers: valid_expr_type() & valid_subexpr_type()Luc Van Oostenryck1-0/+11
2018-02-01use valid_type to avoid to warn twice on conditionalsLuc Van Oostenryck2-2/+1
2018-02-01add helper: valid_type()Luc Van Oostenryck1-0/+5
2018-02-01early return if null ctype in evaluate_conditional()Luc Van Oostenryck1-17/+15
2018-02-01fix error in bad conditionalLuc Van Oostenryck2-2/+3
2018-02-01add testcases for duplicated warning about invalid typesLuc Van Oostenryck3-0/+50
2018-01-31remove warning "call with no type"Luc Van Oostenryck1-3/+1
2018-01-31report type & size on non-power-of-2 pointer subtractionLuc Van Oostenryck2-1/+26
2018-01-26lib.c: early return from handle_onoff_switch()Randy Dunlap1-0/+1
2018-01-25test-suite: handle format with filename.c not existingRandy Dunlap1-0/+1
2018-01-24Documentation: editing fixes in test-suiteRandy Dunlap1-4/+4
2018-01-23Documentation: editing fixes in test-suiteRandy Dunlap1-4/+4
2018-01-23Documentation: make data-structures.txt easier to readRandy Dunlap1-53/+54
2018-01-23sparse: minor manpage correctionsRandy Dunlap1-4/+4
2018-01-21doc: fix manpage formattingLuc Van Oostenryck1-0/+1
2018-01-21Documentation: make data-structures.txt easier to readRandy Dunlap1-53/+54
2018-01-21sparse: minor manpage correctionsRandy Dunlap1-3/+3
2018-01-16CSE: support CSE of floating-point literalLuc Van Oostenryck2-0/+23
2018-01-08add OP_SETFVALLuc Van Oostenryck10-27/+100
2018-01-07cleanup: remove declaration of unused merge_phi_sourcesLuc Van Oostenryck1-1/+1
2018-01-07cleanup: remove unused delete_last_basic_block()Luc Van Oostenryck1-5/+0
2018-01-07cleanup: remove unused & obsolete symbol_is_typename()Luc Van Oostenryck1-1/+0
2018-01-07cleanup: make some functions staticLuc Van Oostenryck7-15/+13
2018-01-07Merge branches 'fmax-warnings', 'funsigned-char', 'testcase-fix-missing-retur...Luc Van Oostenryck11-40/+190
2018-01-03ctags: avoid null derefLuc Van Oostenryck1-1/+1
2018-01-03give a type to builtin functionsLuc Van Oostenryck1-3/+3
2018-01-03teach sparse about '-fmax-warnings'Luc Van Oostenryck3-3/+18
2018-01-02Merge branches 'fix-expand-bitfield-deref', 'fix-fpops-cse', 'null-expr', 'si...Luc Van Oostenryck28-18/+543
2018-01-02fix: dereference null-typeLuc Van Oostenryck2-0/+20
2017-12-29add support for '-f[no-][un]signed-char'Luc Van Oostenryck6-0/+35
2017-12-29let handle_switches() also handle reverse logicLuc Van Oostenryck1-0/+2
2017-12-28fix implicit size of unsized arraysLuc Van Oostenryck3-1/+46
2017-12-28add testcases for type comparisonLuc Van Oostenryck1-0/+76
2017-12-28add more testcases for function designator dereferenceLuc Van Oostenryck3-0/+19
2017-12-28llvm: default init of arrays & structsLuc Van Oostenryck1-0/+6
2017-12-28llvm: simplify emit of null pointersLuc Van Oostenryck1-4/+6
2017-12-28fix crash on bad expression in linearize_switch()Luc Van Oostenryck2-1/+2
2017-12-28warn on empty parenthesized expressionsLuc Van Oostenryck2-0/+33
2017-12-28testcases: add missing return statementsLuc Van Oostenryck2-2/+2
2017-12-27llvm: add declares for function prototypesLuc Van Oostenryck1-1/+4
2017-12-27llvm: use LLVMModuleRef for get_sym_value()Luc Van Oostenryck1-8/+8
2017-12-27llvm: fix: previous function ref MUST be reusedLuc Van Oostenryck2-23/+34
2017-12-21fix: restore CSE on floating-point comparesLuc Van Oostenryck2-2/+3
2017-12-21add testcase for CSE of floating-point comparesLuc Van Oostenryck1-0/+20
2017-12-21fix expansion of constant bitfield dereferenceLuc Van Oostenryck2-1/+2
2017-12-21add testcase for constant bitfield dereferenceLuc Van Oostenryck1-0/+28
2017-12-21Merge branches 'deref-fun-ptr' and 'deref-base-type' into tipLuc Van Oostenryck3-0/+63
2017-12-21dereference of a function is a no-opLuc Van Oostenryck7-6/+3
2017-12-21avoid unneeded alloc on error pathLuc Van Oostenryck1-1/+2
2017-12-21add testcases for multiple deref of callsLuc Van Oostenryck5-4/+23
2017-12-21fix linearize (*fun)()Luc Van Oostenryck4-10/+3
2017-12-21simplify linearize_call_expression()Luc Van Oostenryck1-8/+3
2017-12-21add testcases for the linearization of callsLuc Van Oostenryck12-0/+318
2017-12-21fix: evaluate_dereference() unexamined base typeLuc Van Oostenryck3-2/+1
2017-12-21add testcases for unexamined base typeLuc Van Oostenryck2-0/+64
2017-12-16Merge branch 'testsuite-arg-env' into cli-macroLuc Van Oostenryck1-8/+6
2017-12-16fix: spaces in macro definition on the command lineLuc Van Oostenryck2-2/+1
2017-12-16add test case for space within command lineLuc Van Oostenryck1-0/+11
2017-12-16Merge branch 'testsuite-fix-quotes-cmdline' into cli-macroLuc Van Oostenryck2-5/+14
2017-12-16testsuite: allow default args from environment for test commandsLuc Van Oostenryck1-1/+2
2017-12-16testsuite: respect command line's quotes & whitespacesLuc Van Oostenryck2-6/+7
2017-12-16testsuite: process extra options without execLuc Van Oostenryck1-7/+4
2017-12-13testsuite: add test case for quoting of command's argumentsLuc Van Oostenryck1-0/+8
2017-12-13fix: accept 'sparse -D M...'Luc Van Oostenryck2-5/+8
2017-12-13add testcase for 'sparse -D M...'Luc Van Oostenryck1-0/+13
2017-12-10Merge remote-tracking branch 'worktree/testsuite-next'Luc Van Oostenryck14-91/+92
2017-12-08testsuite: add support for 'format -a'Luc Van Oostenryck1-0/+5
2017-12-08testsuite: default to shift in the getopt loopLuc Van Oostenryck1-9/+1
2017-12-08testsuite: allow to test only a subdirLuc Van Oostenryck1-5/+17
2017-12-08testsuite: change do_usage textLuc Van Oostenryck1-7/+7
2017-12-08testsuite: move no-arg out of the getopt loopLuc Van Oostenryck1-6/+5
2017-12-08testsuite: move do_test_suite out of the getopt loopLuc Van Oostenryck1-2/+1
2017-12-08testsuite: early return in getopt loopLuc Van Oostenryck1-0/+4
2017-12-08testsuite: validate the 'check-...' tagsLuc Van Oostenryck1-0/+12
2017-12-08testsuite: fix invalid 'check-...' tagsLuc Van Oostenryck8-12/+12
2017-12-08testsuite: reset 'quiet' at the start of each testcaseLuc Van Oostenryck1-1/+1
2017-12-08testsuite: add & use warning()Luc Van Oostenryck1-1/+9
2017-12-08testsuite: move verbose/error() before get_tag_value()Luc Van Oostenryck1-17/+19
2017-12-08testsuite: remove old ugly pattern syntaxLuc Van Oostenryck1-32/+0
2017-12-08testsuite: convert to the new pattern syntaxLuc Van Oostenryck1-1/+1
2017-12-08testsuite: fix a few more incorrect check-commandsLuc Van Oostenryck3-3/+3
2017-12-08testsuite: make the '%.t' rule depends on PROGRAMS tooLuc Van Oostenryck1-1/+1
2017-12-08fix: add missing degenerate() for logical notLuc Van Oostenryck2-1/+1
2017-12-07add testcases linearization of degenerated arrays/functionsLuc Van Oostenryck3-0/+110
2017-12-07add more testcases for using addresses in conditionalsLuc Van Oostenryck6-44/+177
2017-12-06fix: build sparse-llvm on i686s too.Luc Van Oostenryck1-1/+1
2017-11-20testsuite: fix: remove unneeded './' before commandsLuc Van Oostenryck13-13/+13
2017-11-18add support of floating-point specific arithmetic opsLuc Van Oostenryck8-32/+176
2017-11-18fix support of floating-point compareLuc Van Oostenryck9-26/+270
2017-11-18add test case for boolean negation on floatLuc Van Oostenryck1-0/+9
2017-11-18fix linearize_inc_dec() with floatsLuc Van Oostenryck2-2/+29
2017-11-17llvm: only compare void pointersLuc Van Oostenryck1-0/+4
2017-11-17llvm: add support for float initializerLuc Van Oostenryck1-0/+3
2017-11-17llvm: warn instead of assert on global initsLuc Van Oostenryck1-1/+6
2017-11-17llvm: gracefully catch impossible type/valueLuc Van Oostenryck1-2/+9
2017-11-17llvm: give names easier to debugLuc Van Oostenryck2-6/+6
2017-11-17llvm: fix creation of sparsec's tmp filesLuc Van Oostenryck1-2/+2
2017-11-17llvm: cleanup of output_[ptr]cast()Luc Van Oostenryck1-27/+12
2017-11-17llvm: add support for cast from floatsLuc Van Oostenryck2-3/+9
2017-11-17llvm: add support for OP_FPCASTLuc Van Oostenryck2-3/+24
2017-11-17llvm: fix type of bitfieldsLuc Van Oostenryck1-0/+2
2017-11-17llvm: fix get value from non-anonymous symbolLuc Van Oostenryck3-9/+44
2017-11-17llvm: fix get value from initialized symbolLuc Van Oostenryck1-14/+13
2017-11-17llvm: add support for restricted typesLuc Van Oostenryck1-0/+1
2017-11-17llvm: fix mutated OP_[PTR]CASTLuc Van Oostenryck1-6/+4
2017-11-17llvm: fix mutated OP_PHISOURCELuc Van Oostenryck1-1/+1
2017-11-17llvm: fix mutated OP_SWITCHLuc Van Oostenryck1-1/+1
2017-11-17llvm: fix mutated OP_SELLuc Van Oostenryck1-3/+3
2017-11-17llvm: fix mutated OP_RETLuc Van Oostenryck1-3/+1
2017-11-17llvm: fix mutating function pointerLuc Van Oostenryck2-6/+64
2017-11-17llvm: take care of degenerated rvaluesLuc Van Oostenryck5-6/+12
2017-11-17llvm: fix variadic calls with constantsLuc Van Oostenryck2-2/+5
2017-11-17llvm: add testcase for calling variadic functionsLuc Van Oostenryck1-0/+28
2017-11-17llvm: add small script to test LLVM generated bytecodeLuc Van Oostenryck2-1/+16
2017-11-17llvm: let pseudo_to_value() directly use the typeLuc Van Oostenryck1-21/+21
2017-11-17llvm: add test case pointer compare with castLuc Van Oostenryck1-0/+3
2017-11-17llvm: make value_to_ivalue() more flexibleLuc Van Oostenryck2-5/+23
2017-11-17llvm: make value_to_pvalue() more flexibleLuc Van Oostenryck1-3/+12
2017-11-17llvm: fix OP_SWITCH has no targetLuc Van Oostenryck2-3/+249
2017-11-17llvm: add support for OP_SWITCH with a rangeLuc Van Oostenryck1-10/+7
2017-11-17llvm: give a name to all valuesLuc Van Oostenryck1-13/+20
2017-11-17llvm: make pseudo_name() more flexibleLuc Van Oostenryck1-11/+6
2017-11-17llvm: fix type of switch constantsLuc Van Oostenryck1-1/+1
2017-11-17llvm: variadic functions are not being marked as suchLuc Van Oostenryck1-1/+1
2017-11-17llvm: adjust OP_RET's typeLuc Van Oostenryck2-1/+1
2017-11-17llvm: give correct type to binopsLuc Van Oostenryck4-0/+110
2017-11-17llvm: fix type in comparison with an address constantLuc Van Oostenryck2-2/+13
2017-11-17llvm: fix pointer/float mixup in comparisonsLuc Van Oostenryck2-2/+24
2017-11-17llvm: ignore OP_INLINED_CALLLuc Van Oostenryck1-1/+0
2017-11-17llvm: add support for OP_SETVAL with labelsLuc Van Oostenryck2-0/+16
2017-11-17llvm: add support for OP_SETVAL with floatsLuc Van Oostenryck2-1/+25
2017-11-17llvm: add support for OP_NEGLuc Van Oostenryck1-2/+15
2017-11-17llvm: add test cases for degenerated pointersLuc Van Oostenryck1-0/+73
2017-11-17llvm: add test cases for arrays passed as argumentLuc Van Oostenryck1-3/+146
2017-11-17llvm: add test cases for pointers passed as argumentLuc Van Oostenryck1-0/+43
2017-11-17llvm: add test cases for symbol's addressLuc Van Oostenryck1-0/+63