aboutsummaryrefslogtreecommitdiffstatshomepage
AgeCommit message (Expand)AuthorFilesLines
2018-02-14kill dead stores when simplifying symbolsLuc Van Oostenryck3-24/+5
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-24Documentation: editing fixes in test-suiteRandy 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
2017-11-17llvm: fix output_op_[ptr]cast()Luc Van Oostenryck1-5/+35
2017-11-17llvm: fix output_op_store() which modify its operandLuc Van Oostenryck2-4/+18
2017-11-17llvm: fix translation of PSEUDO_VALs into a ValueRefsLuc Van Oostenryck3-1/+77
2017-11-17llvm: fix test of floating-point typeLuc Van Oostenryck1-25/+17
2017-11-17llvm: extract get_sym_value() from pseudo_to_value()Luc Van Oostenryck1-47/+53
2017-11-17llvm: avoid useless temp variableLuc Van Oostenryck1-5/+2
2017-11-17llvm: give a name to call's return valuesLuc Van Oostenryck1-1/+6
2017-11-17llvm: give arguments a nameLuc Van Oostenryck1-0/+12
2017-11-17llvm: use pseudo_list_size() instead of open coding itLuc Van Oostenryck1-4/+1
2017-11-17llvm: reduce scope of 'bb_nr'Luc Van Oostenryck1-2/+1
2017-11-17llvm: remove unneeded function::typeLuc Van Oostenryck1-3/+3
2017-11-17llvm: remove unneeded 'generation'Luc Van Oostenryck1-11/+2
2017-11-17llvm: remove unneeded arg 'module'Luc Van Oostenryck1-37/+37
2017-11-17add support for wider type in switch-caseLuc Van Oostenryck3-5/+52
2017-11-17add doc about sparse's instructions/IRLuc Van Oostenryck1-0/+293
2017-11-16give a type to OP_SWITCHsLuc Van Oostenryck1-2/+3
2017-11-16give a type to OP_SELs, alwaysLuc Van Oostenryck1-1/+1
2017-11-16give a type to OP_PHISOURCEsLuc Van Oostenryck4-12/+10
2017-11-16give a type to all function argumentsLuc Van Oostenryck3-7/+31
2017-11-16inlined calls should not block BB packingLuc Van Oostenryck3-5/+32
2017-11-16fix usage of inlined callsLuc Van Oostenryck2-1/+59
2017-11-16add is_signed_type()Luc Van Oostenryck3-22/+12
2017-11-16canonicalize compare instructionsLuc Van Oostenryck4-14/+151
2017-11-16canonicalize binops before simplificationLuc Van Oostenryck1-11/+9
2017-11-16use opcode table for compare_opcode()Luc Van Oostenryck1-25/+1
2017-11-16add table to "negate" some opcodeLuc Van Oostenryck4-0/+49
2017-11-16don't output value of anonymous symbol's pointerLuc Van Oostenryck1-2/+2
2017-11-16show OP_PHI without VOIDLuc Van Oostenryck1-0/+2
2017-11-13Merge branches 'testcases-bugs', 'testcases-bugs-optim' and 'testcases-mem2re...Luc Van Oostenryck35-0/+799
2017-11-13add test case for missing conversion to selectLuc Van Oostenryck1-0/+24
2017-11-13add test cases for canonicalization of boolean expressionsLuc Van Oostenryck1-0/+12
2017-11-13add testcase for mem2reg/SSA conversionLuc Van Oostenryck28-0/+629
2017-11-13add test case for superfluous cast with volatilesLuc Van Oostenryck1-0/+14
2017-11-13add test cases for simplification of equivalent to 'x == 0' or 'x != 0'Luc Van Oostenryck2-0/+24
2017-11-13add testcase for return & inlineLuc Van Oostenryck1-0/+24
2017-11-13add test case for pre-processor extra tokens warningLuc Van Oostenryck1-0/+15
2017-11-13add test cases for canonicalization of mul chainsLuc Van Oostenryck1-0/+24
2017-11-13add testcase for __builtin_unreachable()Luc Van Oostenryck1-0/+31
2017-11-13add test case for compound literalsLuc Van Oostenryck2-0/+45
2017-11-13add test cases for canonicalization of add/sub chainsLuc Van Oostenryck1-0/+55
2017-11-13add test case for missed overflow detectionLuc Van Oostenryck1-0/+19
2017-11-13add test case for bad layout of bool in bitfieldsLuc Van Oostenryck1-0/+26
2017-11-13add test case using sizeof on incomplete typeLuc Van Oostenryck1-0/+27
2017-11-13add test case storage specifier in struct memberLuc Van Oostenryck1-0/+20
2017-11-13add test case bitfields in K&R declLuc Van Oostenryck1-0/+14
2017-11-13add test case for incomplete typeLuc Van Oostenryck1-0/+20
2017-11-13add test case for conditionally undefined varLuc Van Oostenryck1-0/+21
2017-11-13add test case for memory to register problemLuc Van Oostenryck1-0/+25
2017-11-13add test case for VLA sizeofLuc Van Oostenryck1-0/+37
2017-11-13add test case for using multiple input filesLuc Van Oostenryck1-0/+11
2017-11-13Merge branch 'dump-ir' into tipLuc Van Oostenryck11-76/+257
2017-11-13dump-ir: activate -fdump-ir=mem2regLuc Van Oostenryck1-0/+2
2017-11-13dump-ir: make it more flexibleLuc Van Oostenryck8-19/+78
2017-11-13dump-ir: rename -fdump-linearize to -fdump-irLuc Van Oostenryck8-11/+11
2017-11-13dump-ir: saner use of fdump_linearizeLuc Van Oostenryck3-4/+5
2017-11-13dump-ir: allow to skip the optimization pass(es)Luc Van Oostenryck1-0/+2
2017-11-12dump-ir: activate/deactive pass 'mem2reg'Luc Van Oostenryck1-1/+2
2017-11-12dump-ir: allow to specify the passes to execute via cli's optionsLuc Van Oostenryck4-0/+54