Age | Commit message (Expand) | Author | Files | Lines |
2020-09-07 | builtin: teach sparse to linearize __builtin_fma() | Luc Van Oostenryck | 1 | -0/+20 |
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 | 1 | -0/+2 |
2020-08-06 | bad-shift: wait dead code elimination to warn about bad shifts | Luc Van Oostenryck | 1 | -0/+44 |
2020-05-21 | bad-goto: do not linearize if the IR will be invalid | Luc Van Oostenryck | 1 | -1/+1 |
2020-03-20 | teach sparse to linearize __builtin_unreachable() | Luc Van Oostenryck | 1 | -0/+7 |
2020-03-20 | add support for linearization of builtins | Luc Van Oostenryck | 1 | -0/+32 |
2020-03-20 | add an implicit __builtin_unreachable() for __noreturn | Luc Van Oostenryck | 1 | -0/+10 |
2020-03-20 | add instruction OP_UNREACH | Luc Van Oostenryck | 1 | -0/+3 |
2019-09-30 | Merge branch 'fix-expand-asm' into tip | Luc Van Oostenryck | 1 | -23/+25 |
2019-09-30 | do not linearize invalid expression | Luc Van Oostenryck | 1 | -2/+6 |
2019-09-27 | asm: fix liveness memory operand | Luc Van Oostenryck | 1 | -0/+1 |
2019-09-27 | asm: linearization of output memory operands is different | Luc Van Oostenryck | 1 | -4/+9 |
2019-09-27 | asm: keep using struct asm_operand during linearization | Luc Van Oostenryck | 1 | -15/+10 |
2019-09-27 | asm: use a specific struct for asm operands | Luc Van Oostenryck | 1 | -9/+10 |
2018-12-21 | remove unused regno() | Luc Van Oostenryck | 1 | -8/+0 |
2018-12-19 | allocate BBs after the guards | Luc Van Oostenryck | 1 | -1/+3 |
2018-12-19 | remove unused arg in add_branch() | Luc Van Oostenryck | 1 | -4/+4 |
2018-09-08 | fix linearization of non-constant switch-cases | Luc Van Oostenryck | 1 | -2/+5 |
2018-09-06 | Merge branches 'missing-return' and 'fix-logical-phi' into tip | Luc Van Oostenryck | 1 | -52/+89 |
2018-09-06 | fix linearization of nested logical expr | Luc Van Oostenryck | 1 | -18/+31 |
2018-09-06 | fix ordering of phi-node operand | Luc Van Oostenryck | 1 | -2/+2 |
2018-09-06 | return nothing only in void functions | Luc Van Oostenryck | 1 | -3/+3 |
2018-09-06 | use a temp var for the return type/symbol | Luc Van Oostenryck | 1 | -1/+2 |
2018-09-06 | use UNDEF for missing returns | Luc Van Oostenryck | 1 | -0/+8 |
2018-09-06 | extract add_return() from linearize_return() | Luc Van Oostenryck | 1 | -11/+16 |
2018-09-06 | the return BB is never terminated | Luc Van Oostenryck | 1 | -8/+7 |
2018-09-06 | there is always an active BB after linearize_fn_statement() | Luc Van Oostenryck | 1 | -2/+2 |
2018-09-06 | specialize linearize_compound_statement() | Luc Van Oostenryck | 1 | -10/+16 |
2018-09-06 | topasm: top-level asm is special | Luc Van Oostenryck | 1 | -2/+6 |
2018-09-05 | use a temp var for function's upper-level statement | Luc Van Oostenryck | 1 | -2/+3 |
2018-09-01 | Merge branch 'dead-switch' into tip | Luc Van Oostenryck | 1 | -5/+6 |
2018-09-01 | fix linearization of unreachable switch (with reachable label). | Luc Van Oostenryck | 1 | -5/+6 |
2018-08-31 | Merge branch 'opcode' into tip | Luc Van Oostenryck | 1 | -6/+2 |
2018-08-25 | fix: do not optimize away accesses to volatile bitfields | Luc Van Oostenryck | 1 | -2/+2 |
2018-08-25 | add a flag for volatile memops | Luc Van Oostenryck | 1 | -0/+2 |
2018-08-25 | symaddr: s/insn->symbol/insn->src/ | Luc Van Oostenryck | 1 | -6/+2 |
2018-08-25 | Merge branch 'ssa' into tip | Luc Van Oostenryck | 1 | -0/+45 |
2018-08-07 | fix bad indentation in linearize_inc_dec() | Luc Van Oostenryck | 1 | -1/+1 |
2018-08-07 | fix instruction size & type in linearize_inc_dec() | Luc Van Oostenryck | 1 | -1/+5 |
2018-08-07 | put back the bitfield base type into struct access_data | Luc Van Oostenryck | 1 | -5/+7 |
2018-08-07 | expand linearize_position() into linearize_initializer() | Luc Van Oostenryck | 1 | -9/+2 |
2018-08-06 | limit the mask used for bitfield insertion | Luc Van Oostenryck | 1 | -1/+2 |
2018-08-06 | cast: fix warning position in cast_pseudo() | Luc Van Oostenryck | 1 | -2/+3 |
2018-08-06 | boolean conversion of boolean value is a no-op | Luc Van Oostenryck | 1 | -0/+2 |
2018-08-06 | simplify linearize_logical() | Luc Van Oostenryck | 1 | -27/+14 |
2018-08-06 | expand linearize_conditional() into linearize_logical() | Luc Van Oostenryck | 1 | -17/+47 |
2018-08-06 | fix linearize_conditional() for logical ops | Luc Van Oostenryck | 1 | -4/+13 |
2018-08-06 | conditional branches can't accept arbitrary expressions | Luc Van Oostenryck | 1 | -1/+1 |
2018-08-06 | protect add_convert_to_bool() against bad types / invalid expressions | Luc Van Oostenryck | 1 | -0/+2 |
2018-07-25 | Merge branch 'optim-cast' into tip | Luc Van Oostenryck | 1 | -17/+33 |
2018-07-25 | Merge branch 'optim-shift' into tip | Luc Van Oostenryck | 1 | -0/+19 |
2018-07-24 | use "%Le" to display floats | Luc Van Oostenryck | 1 | -2/+2 |
2018-07-23 | bitfield: extract linearize_bitfield_insert() | Luc Van Oostenryck | 1 | -11/+19 |
2018-07-23 | bitfield: extract linearize_bitfield_extract() | Luc Van Oostenryck | 1 | -6/+14 |
2018-07-21 | big-shift: mark out-of-range OP_{ASR,LSR,SHL} as tainted | Luc Van Oostenryck | 1 | -0/+19 |
2018-07-13 | remove obsolete comment: /* Dummy pseudo allocator */ | Luc Van Oostenryck | 1 | -1/+0 |
2018-07-13 | no need to assign ad->type for EXPR_POS | Luc Van Oostenryck | 1 | -1/+0 |
2018-07-13 | remove unused struct access_data::pos | Luc Van Oostenryck | 1 | -4/+0 |
2018-07-13 | remove unused finish_address_gen() | Luc Van Oostenryck | 1 | -10/+0 |
2018-07-01 | add insert_phi_node() | Luc Van Oostenryck | 1 | -0/+36 |
2018-07-01 | add PSEUDO_UNDEF & undef_pseudo() | Luc Van Oostenryck | 1 | -0/+9 |
2018-06-28 | bool: remove OP_{AND,OR}_BOOL instructions | Luc Van Oostenryck | 1 | -2/+0 |
2018-06-28 | bool: generate plain OP_{AND,OR} instead of OP_{AND,OR}_BOOL | Luc Van Oostenryck | 1 | -1/+1 |
2018-06-28 | bool: fix missing boolean context for floats | Luc Van Oostenryck | 1 | -2/+7 |
2018-06-23 | cast: keep instruction sizes consistent | Luc Van Oostenryck | 1 | -1/+11 |
2018-06-23 | cast: do not try to linearize illegal casts | Luc Van Oostenryck | 1 | -0/+2 |
2018-06-23 | cast: accept null casts | Luc Van Oostenryck | 1 | -0/+6 |
2018-06-23 | cast: specialize integer casts | Luc Van Oostenryck | 1 | -11/+16 |
2018-06-23 | cast: make casts from pointer always size preserving | Luc Van Oostenryck | 1 | -0/+2 |
2018-06-23 | cast: add support for -Wpointer-to-int-cast | Luc Van Oostenryck | 1 | -0/+5 |
2018-06-23 | cast: specialize cast from pointers | Luc Van Oostenryck | 1 | -0/+7 |
2018-06-23 | cast: temporary simplify handling cast to/from void* | Luc Van Oostenryck | 1 | -4/+15 |
2018-06-23 | cast: make pointer casts always size preserving | Luc Van Oostenryck | 1 | -0/+2 |
2018-06-23 | cast: specialize casts from unsigned to pointers | Luc Van Oostenryck | 1 | -1/+21 |
2018-06-23 | cast: specialize floats to integer conversion | Luc Van Oostenryck | 1 | -0/+5 |
2018-06-23 | cast: handle NO-OP casts | Luc Van Oostenryck | 1 | -0/+8 |
2018-06-23 | cast: specialize FPCAST into [USF]CVTF | Luc Van Oostenryck | 1 | -3/+15 |
2018-06-23 | cast: prepare finer grained cast instructions | Luc Van Oostenryck | 1 | -15/+63 |
2018-06-22 | rename add_uniop() to add_unop() | Luc Van Oostenryck | 1 | -3/+3 |
2018-06-22 | add_uniop() should take a type, not an expression | Luc Van Oostenryck | 1 | -5/+6 |
2018-05-26 | context: __context__(...) expect a constant expression | Luc Van Oostenryck | 1 | -5/+1 |
2018-05-06 | fix comment about PSEUDO_SYM usage | Luc Van Oostenryck | 1 | -1/+1 |
2018-03-18 | avoid deadborn loads & stores | Luc Van Oostenryck | 1 | -1/+11 |
2018-03-18 | fix-return: remove special case for single return | Luc Van Oostenryck | 1 | -6/+0 |
2018-03-18 | defer initialization of bb::context | Luc Van Oostenryck | 1 | -1/+0 |
2018-03-18 | small code reorg of add_store() | Luc Van Oostenryck | 1 | -8/+9 |
2018-03-18 | extract alloc_phisrc() from alloc_phi() | Luc Van Oostenryck | 1 | -10/+16 |
2018-03-18 | show_label: add (and use) show_label() | Luc Van Oostenryck | 1 | -16/+25 |
2018-03-01 | IR: let OP_COMPUTEGOTO use .src instead of .target | Luc Van Oostenryck | 1 | -2/+2 |
2018-03-01 | IR: remove never-generated instructions | Luc Van Oostenryck | 1 | -8/+0 |
2018-03-01 | IR: remove now unused OP_LNOP & OP_SNOP | Luc Van Oostenryck | 1 | -4/+2 |
2018-02-24 | move the optimization loop in its own file | Luc Van Oostenryck | 1 | -62/+2 |
2018-02-20 | ban use of 'true' or 'false' | Luc Van Oostenryck | 1 | -6/+6 |
2018-02-20 | no need for signed & unsigned multiplication | Luc Van Oostenryck | 1 | -5/+4 |
2018-02-17 | rename base_type() to bitfield_base_type() | Luc Van Oostenryck | 1 | -5/+5 |
2018-02-17 | let struct access_data use a single type | Luc Van Oostenryck | 1 | -23/+21 |
2018-02-17 | use show_pseudo() for OP_SYMADDR's symbol | Luc Van Oostenryck | 1 | -16/+3 |
2018-02-17 | show_pseudo(): protect against NULL ->sym | Luc Van Oostenryck | 1 | -0/+4 |
2018-02-08 | Merge branches 'cse-setfval' and 'extract-eval' into tip | Luc Van Oostenryck | 1 | -3/+1 |
2018-01-31 | remove warning "call with no type" | Luc Van Oostenryck | 1 | -3/+1 |
2018-01-08 | add OP_SETFVAL | Luc Van Oostenryck | 1 | -5/+13 |
2018-01-07 | cleanup: make some functions static | Luc Van Oostenryck | 1 | -6/+6 |
2017-12-28 | fix crash on bad expression in linearize_switch() | Luc Van Oostenryck | 1 | -0/+2 |
2017-12-21 | fix linearize (*fun)() | Luc Van Oostenryck | 1 | -7/+3 |
2017-12-21 | simplify linearize_call_expression() | Luc Van Oostenryck | 1 | -8/+3 |
2017-11-18 | add support of floating-point specific arithmetic ops | Luc Van Oostenryck | 1 | -4/+15 |
2017-11-18 | fix support of floating-point compare | Luc Van Oostenryck | 1 | -2/+19 |
2017-11-18 | fix linearize_inc_dec() with floats | Luc Van Oostenryck | 1 | -2/+16 |
2017-11-17 | add support for wider type in switch-case | Luc Van Oostenryck | 1 | -4/+4 |
2017-11-16 | give a type to OP_SWITCHs | Luc Van Oostenryck | 1 | -2/+3 |
2017-11-16 | give a type to OP_SELs, always | Luc Van Oostenryck | 1 | -1/+1 |
2017-11-16 | give a type to OP_PHISOURCEs | Luc Van Oostenryck | 1 | -9/+7 |
2017-11-16 | give a type to all function arguments | Luc Van Oostenryck | 1 | -6/+7 |
2017-11-16 | fix usage of inlined calls | Luc Van Oostenryck | 1 | -1/+1 |
2017-11-16 | don't output value of anonymous symbol's pointer | Luc Van Oostenryck | 1 | -2/+2 |
2017-11-16 | show OP_PHI without VOID | Luc Van Oostenryck | 1 | -0/+2 |
2017-11-13 | Merge branch 'dump-ir' into tip | Luc Van Oostenryck | 1 | -5/+7 |
2017-11-13 | dump-ir: activate -fdump-ir=mem2reg | Luc Van Oostenryck | 1 | -0/+2 |
2017-11-13 | dump-ir: make it more flexible | Luc Van Oostenryck | 1 | -1/+1 |
2017-11-13 | dump-ir: rename -fdump-linearize to -fdump-ir | Luc Van Oostenryck | 1 | -1/+1 |
2017-11-13 | dump-ir: saner use of fdump_linearize | Luc Van Oostenryck | 1 | -4/+1 |
2017-11-13 | dump-ir: allow to skip the optimization pass(es) | Luc Van Oostenryck | 1 | -0/+2 |
2017-11-12 | dump-ir: activate/deactive pass 'mem2reg' | Luc Van Oostenryck | 1 | -1/+2 |
2017-09-17 | use a specific struct for asm operands | Luc Van Oostenryck | 1 | -38/+4 |
2017-07-31 | fix crash with sym->bb_target == NULL | Luc Van Oostenryck | 1 | -1/+4 |
2017-07-31 | fix crash when ep->active is NULL | Luc Van Oostenryck | 1 | -2/+7 |
2017-07-31 | fix ptrlist corruption while killing unreachable BBs | Luc Van Oostenryck | 1 | -3/+0 |
2017-05-19 | Merge branches 'dump-macros-v2', 'fix-predefined-size', 'fix-bool-context', '...v0.5.1-rc1 | Luc Van Oostenryck | 1 | -19/+67 |
2017-05-19 | add support for a new flag: -fdump-linearize[=only] | Luc Van Oostenryck | 1 | -0/+6 |
2017-05-19 | remove origval from struct access_data | Luc Van Oostenryck | 1 | -6/+0 |
2017-05-19 | remove alignment from struct access_data | Luc Van Oostenryck | 1 | -2/+1 |
2017-05-19 | fix implicit zero initializer. | Luc Van Oostenryck | 1 | -0/+15 |
2017-05-19 | remove bit_size & bit_offset from struct access_data | Luc Van Oostenryck | 1 | -8/+8 |
2017-05-19 | fix: kill old branch in insert_branch() | Luc Van Oostenryck | 1 | -1/+2 |
2017-05-12 | fix boolean context for OP_AND_BOOL & OP_OR_BOOL | Luc Van Oostenryck | 1 | -2/+35 |
2017-05-12 | fix: kill unreachable BBs after killing a child | Luc Van Oostenryck | 1 | -1/+4 |
2017-04-30 | Merge branches 'sent/float-expand-v2', 'sent/fix-kill-ttsb-v2', 'sent/fix-con... | Luc Van Oostenryck | 1 | -0/+2 |
2017-03-31 | avoid crash with test-linearize -vv | Luc Van Oostenryck | 1 | -0/+2 |
2017-03-27 | fix cast to pointer to floating-point | Luc Van Oostenryck | 1 | -2/+1 |
2017-03-06 | use VOID instead of directly using &void_pseudo | Luc Van Oostenryck | 1 | -1/+1 |
2017-03-06 | split OP_BR between unconditional & conditional: OP_CBR | Luc Van Oostenryck | 1 | -6/+8 |
2017-03-04 | fix size of loaded bitfields | Luc Van Oostenryck | 1 | -1/+3 |
2017-02-13 | fix cast's target type info | Luc Van Oostenryck | 1 | -2/+2 |
2017-02-13 | fix value of label statement | Luc Van Oostenryck | 1 | -2/+1 |
2017-02-13 | fix typing error in compound assignment | Luc Van Oostenryck | 1 | -4/+6 |
2017-02-13 | OP_SWITCH should use 'insn->cond' instead of 'insn->target' | Luc Van Oostenryck | 1 | -1/+1 |
2017-02-13 | give comparable label's names to basic blocks | Luc Van Oostenryck | 1 | -14/+16 |
2017-02-13 | fix discarded label statement | Luc Van Oostenryck | 1 | -1/+1 |
2017-01-27 | linearize: Emit C99 declarations correctly | Emily Maier | 1 | -0/+4 |
2013-05-27 | Fix result type of relational and logical operators | Xi Wang | 1 | -2/+2 |
2012-02-04 | sparse, llvm: Make function declaration accessible to backend | Linus Torvalds | 1 | -0/+8 |
2011-08-27 | Make 'linearize_return()' helper function | Linus Torvalds | 1 | -22/+26 |
2011-08-27 | Make 'linearize_switch()' helper function | Linus Torvalds | 1 | -61/+65 |
2011-08-27 | Make 'linearize_iterator()' helper function | Linus Torvalds | 1 | -40/+45 |
2011-04-26 | use ARRAY_SIZE() when possible (continued) | Jan Pokorný | 1 | -1/+1 |
2010-03-28 | Fix incorrect linearization of "x && y && z" | Daniel De Graaf | 1 | -1/+3 |
2009-07-29 | linearize.h: sanitize header | Kamil Dudka | 1 | -3/+3 |
2008-12-24 | Revert the context tracking code | Johannes Berg | 1 | -15/+16 |
2008-12-18 | Add type information to struct instruction. | David Given | 1 | -1/+3 |
2008-04-24 | fix bug in context tracking code | Johannes Berg | 1 | -1/+0 |
2008-04-24 | Fix cast instruction generation | Linus Torvalds | 1 | -3/+3 |
2008-04-21 | sparse: simple conditional context tracking | Johannes Berg | 1 | -16/+6 |
2008-04-21 | make sparse keep its promise about context tracking | Johannes Berg | 1 | -0/+10 |
2007-07-10 | fix handling of address_space in casts and assignments | Al Viro | 1 | -0/+1 |
2007-05-22 | Improved graph generation using subgraph clusters for functions | Dan Sheridan | 1 | -0/+1 |
2007-05-22 | Use %td when printing a ptrdiff_t to avoid problems on 64-bit platforms | Josh Triplett | 1 | -1/+1 |
2007-05-22 | Revert unintentional inclusion of warning fix in previous commit. | Josh Triplett | 1 | -1/+1 |
2007-05-22 | Add test case for -Wno-old-initializer | Josh Triplett | 1 | -1/+1 |
2007-04-20 | Fix the annotated inline call position | Christopher Li | 1 | -0/+4 |
2007-03-02 | Add annotation for inline function call. | Christopher Li | 1 | -7/+37 |
2007-02-28 | Disable liveness "dead" instruction by default. | Christopher Li | 1 | -1/+2 |
2007-02-26 | Coding style fix: use parentheses with sizeof | Josh Triplett | 1 | -1/+1 |
2007-02-26 | Fix core dump on huge switch | Christopher Li | 1 | -1/+4 |
2007-02-22 | Fix core dump on anonymous symbol. | Christopher Li | 1 | -8/+10 |
2007-01-27 | Coding style fix: in a pointer type, * goes with the name, not the type. | Josh Triplett | 1 | -2/+2 |
2007-01-16 | Add instruction to pseudo user tracking. | Christopher Li | 1 | -35/+37 |
2007-01-16 | Change the symbol access list to a pseudo list | Christopher Li | 1 | -5/+5 |
2006-08-30 | [PATCH] Parse and track multiple contexts by expression | Josh Triplett | 1 | -21/+28 |
2005-12-31 | Make local declarations be statements of their own | Linus Torvalds | 1 | -7/+15 |
2005-11-21 | [PATCH] Add a new opcode: OP_COPY. | Luc Van Oostenryck | 1 | -0/+5 |
2005-08-15 | Clean up iterator handling | Linus Torvalds | 1 | -2/+3 |
2005-06-27 | [PATCH] makes some needlessly global code static | Luc Van Oostenryck | 1 | -6/+6 |
2005-06-26 | [PATCH] avoid segfault in add_asm_output() after a parse error in asm statement | Luc Van Oostenryck | 1 | -1/+1 |
2005-06-26 | [PATCH] avoid segafult after parse errors in casts | Luc Van Oostenryck | 1 | -0/+3 |
2005-06-26 | [PATCH] avoid segfault after parse errors in assignements | Luc Van Oostenryck | 1 | -0/+3 |
2005-06-26 | [PATCH] avoid segfault in linearize_asm_statement() after a parse error in as... | Luc Van Oostenryck | 1 | -1/+1 |
2005-06-26 | [PATCH] Avoid segfault when code is present after a goto statement | Luc Van Oostenryck | 1 | -2/+2 |
2005-06-21 | Be more careful about linearizing conditionals | Linus Torvalds | 1 | -3/+7 |
2005-06-20 | [PATCH] segfault on bad ternary conditional | Luc Van Oostenryck | 1 | -1/+5 |
2005-06-19 | Fix SIGSEGV on assignment to bad left side. | Linus Torvalds | 1 | -2/+2 |
2005-04-07 | Add support for context checking functions. | Linus Torvalds | 1 | -5/+13 |
2005-04-07 | Avoid SIGSEGV when linearizing bad expressions. | Linus Torvalds | 1 | -1/+1 |
2005-04-07 | Make each instruction have a position of its own. | Linus Torvalds | 1 | -0/+6 |
2005-04-07 | Add compile-time "range-check" infrastructure to sparse | Linus Torvalds | 1 | -3/+21 |
2005-04-07 | Split OP_CAST into signed, unsigned and FP casts. | Linus Torvalds | 1 | -0/+8 |
2005-04-07 | Make the example code generator do something half-way sane | Linus Torvalds | 1 | -0/+1 |
2005-04-07 | Split the binops where signedness matters into unsigned and signed. | Linus Torvalds | 1 | -14/+34 |
2005-04-07 | Make linearizer able to handle assignment ops where the | Linus Torvalds | 1 | -41/+50 |
2005-04-07 | Linearize EXPR_POS initializers more carefully: they can | Linus Torvalds | 1 | -4/+2 |