Age | Commit message (Expand) | Author | Files | Lines |
2021-04-18 | Merge branches 'fix-phisrc' and 'insert-last-insn' into memops-prep | Luc Van Oostenryck | 1 | -46/+4 |
2021-04-10 | linear: only allocate call instructions when needed | Luc Van Oostenryck | 1 | -1/+2 |
2021-03-21 | let insert_phis() use insert_last_instruction() | Luc Van Oostenryck | 1 | -4/+3 |
2021-03-21 | let insert_select() use insert_last_instruction() | Luc Van Oostenryck | 1 | -6/+1 |
2021-03-19 | move insert_branch() to flow.c | Luc Van Oostenryck | 1 | -26/+0 |
2021-03-19 | let insert_branch() reuse the terminating instruction | Luc Van Oostenryck | 1 | -10/+6 |
2021-03-19 | fold remove_parent() into insert_branch() | Luc Van Oostenryck | 1 | -6/+1 |
2021-03-19 | simplify remove_parent() | Luc Van Oostenryck | 1 | -2/+0 |
2021-03-19 | remove insert_branch() redundant arg | Luc Van Oostenryck | 1 | -1/+2 |
2021-03-08 | Merge branch 'uniq-phinode' | Luc Van Oostenryck | 1 | -9/+5 |
2021-03-08 | phi-sources can only have a single user (or none) | Luc Van Oostenryck | 1 | -9/+5 |
2021-02-28 | slice: display the source's size, like for unops | Luc Van Oostenryck | 1 | -1/+1 |
2021-02-28 | slice: OP_SLICE needs the source's type: make it a kind of unop | Luc Van Oostenryck | 1 | -2/+3 |
2021-02-28 | slice: remove unneeded len from OP_SLICE | Luc Van Oostenryck | 1 | -2/+1 |
2021-02-21 | asm-mem: does it output to memory? | Luc Van Oostenryck | 1 | -0/+1 |
2021-02-21 | asm-mem: does it clobber memory? | Luc Van Oostenryck | 1 | -1/+7 |
2021-02-21 | asm: output *memory* operands need their address as *input* | Luc Van Oostenryck | 1 | -8/+23 |
2021-02-21 | asm: factor out add_asm_rule() from add_asm_{in,out}put() | Luc Van Oostenryck | 1 | -11/+12 |
2021-01-31 | fix add_join_conditional() when one of the alternative is VOID | Luc Van Oostenryck | 1 | -2/+2 |
2020-12-29 | packed: no out-of-bound access of packed bitfields | Luc Van Oostenryck | 1 | -2/+11 |
2020-12-10 | move check_access() to late_warnings() | Luc Van Oostenryck | 1 | -0/+6 |
2020-11-22 | symaddr: give a type to OP_SYMADDR | Luc Van Oostenryck | 1 | -4/+4 |
2020-11-22 | Merge branch 'optim-cgoto' into next | Luc Van Oostenryck | 1 | -0/+6 |
2020-11-21 | add a new instruction for label-as-value | Luc Van Oostenryck | 1 | -0/+6 |
2020-11-19 | Merge branches 'cleanup-postop' and 'cleanup-linearize' | Luc Van Oostenryck | 1 | -4/+0 |
2020-11-17 | linearize: remove unneeded forward declarations | Luc Van Oostenryck | 1 | -4/+0 |
2020-11-17 | cfg: add missing REPEAT_CFG_CLEANUP | Luc Van Oostenryck | 1 | -0/+1 |
2020-11-11 | Merge branch 'debug' | Luc Van Oostenryck | 1 | -0/+18 |
2020-11-09 | fix linear_isdigit()'s itype | Luc Van Oostenryck | 1 | -0/+1 |
2020-11-01 | Merge branch 'typed-cmp' | Luc Van Oostenryck | 1 | -4/+12 |
2020-11-01 | linearize __builtin_isdigit() | Luc Van Oostenryck | 1 | -0/+22 |
2020-11-01 | fix usage count in linearize_fma() | Luc Van Oostenryck | 1 | -3/+3 |
2020-11-01 | fix init_linearized_builtins() | Luc Van Oostenryck | 1 | -1/+1 |
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 | 1 | -4/+12 |
2020-10-27 | Merge branches 'cleanup-linearize', 'inline-use', 'inline-def', 'pure-call', ... | Luc Van Oostenryck | 1 | -15/+6 |
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-23 | cleanup linearize_cond_branch() | Luc Van Oostenryck | 1 | -12/+5 |
2020-10-22 | memops need long offsets | Luc Van Oostenryck | 1 | -3/+3 |
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 |