summaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't treat all constified cdata content as constant.Mike Pall2012-07-241-1/+13
|
* FFI: Box all accessed or returned enums.Mike Pall2012-07-171-0/+2
|
* Fix FOLD rule (i-j)-i => 0-j.Mike Pall2012-07-171-1/+1
| | | | Thanks to Thomas Schilling.
* Workaround for MSVC conversion bug (double -> uint32_t -> int32_t).Mike Pall2012-07-171-0/+7
|
* Avoid pesky compiler warnings about C++ keywords (eh?).Mike Pall2012-07-031-5/+5
|
* Add HREFK forwarding. Eliminate HREFK guard for TDUP refs.Mike Pall2012-06-281-0/+3
|
* FFI: Use CNEWI/FLOAD to box/access ffi.new("int", x) (for varargs).Mike Pall2012-06-041-1/+3
|
* Bump copyright date to 2012.Mike Pall2012-01-231-1/+1
|
* Add more FOLD rules for shift + BAND simplifications.Mike Pall2011-10-251-0/+30
|
* Add missing FOLD rule for CONV.u64.int + sign-extension.Mike Pall2011-10-221-0/+1
|
* Fix FOLD rule for CONV.flt.num(CONV.num.flt(x)) => x.Mike Pall2011-10-191-2/+2
|
* Add missing FOLD rule for integer NEG of constants.Mike Pall2011-10-171-0/+2
|
* Remove unneeded PHI barrier for reassociation of duplicate ops.Mike Pall2011-10-101-1/+0
|
* Add narrowing of modulo operator.Mike Pall2011-06-031-1/+23
|
* ARM: Don't generate unaligned XLOADs.Mike Pall2011-06-021-3/+12
|
* ARM: Fix math.ldexp() recording and folding.Mike Pall2011-05-271-0/+15
|
* ARM: Unify rotates to simplify assembler backend.Mike Pall2011-05-231-0/+2
|
* Use common helper functions for unaligned loads.Mike Pall2011-05-091-6/+3
|
* Use lj_vm_tobit() on targets without FPU.Mike Pall2011-04-101-3/+1
|
* Add FOLD rule for FLOAT->NUM->FLOAT conversions.Mike Pall2011-04-051-0/+9
|
* DUALNUM: Narrow unary minus.Mike Pall2011-03-151-1/+13
|
* DUALNUM: Add integer variant of MIN/MAX.Mike Pall2011-03-111-2/+16
|
* Get rid of the remaining silly cast macros from Lua.Mike Pall2011-03-101-6/+6
|
* DUALNUM: Handle integer type in JIT compiler.Mike Pall2011-03-101-1/+4
|
* FFI: Fix and optimize recording of cdata[cdata].Mike Pall2011-03-101-0/+30
|
* DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV.Mike Pall2011-03-071-0/+29
|
* FFI: Fix compiled ffi.string() semantics.Mike Pall2011-02-281-2/+4
|
* Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations.Mike Pall2011-02-071-0/+1
|
* Strength-reduce 32 to 64 bit widening for XLOAD U8/U16 inputs.Mike Pall2011-02-061-0/+3
|
* FFI: Record simple C function calls.Mike Pall2011-02-051-0/+1
| | | | | | Only handles cdecl and fixarg C functions. Doesn't handle pass-by-value aggregates. Doesn't handle 64 bit args/returns on 32 bit CPUs.
* FFI: Record C library namespace lookups.Mike Pall2011-02-051-3/+9
|
* FFI: Disable MUL => BSHL FOLD rule on 32 bit.Mike Pall2011-02-031-0/+3
|
* FFI: Rename IR_CNEWP to IR_CNEWI and use it to box 64 bit integers.Mike Pall2011-02-031-7/+18
| | | | | Generates smaller IR and DCE eliminates many intermediate boxes. Needs allocation sinking to eliminate the boxes kept alive by PHIs.
* Rename IR_POWI to IR_POW.Mike Pall2011-02-021-8/+8
|
* FFI: Add basic FOLD rules for 64 bit integer DIV, MOD and POWI.Mike Pall2011-02-021-0/+53
|
* Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.Mike Pall2011-02-021-17/+8
| | | | | | | Add generic HIOP instruction for extra backend functionality. Add support for HIOP to x86 backend. Use POWI for 64 bit integer x^k, too. POWI is lowered to a call by SPLIT or the x64 backend.
* Fix 64 bit case of (SUB x x) and (BXOR x x) FOLD rules.Mike Pall2011-01-281-2/+2
|
* Differentiate between IR_KPTR and IR_KKPTR.Mike Pall2011-01-191-9/+12
| | | | | | | IR_KPTR holds a const pointer to possibly non-const content. IR_KKPTR holds a const pointer to definitely const content. Note that only content known by the VM to be const qualifies. Content tagged as const by users (e.g. const char *) doesn't.
* Add FOLD rule for CONV.num.u32 KINT.Mike Pall2011-01-131-0/+6
|
* Bump copyright date to 2011.Mike Pall2011-01-091-1/+1
|
* FFI: Add support for cdata constants to IR.Mike Pall2011-01-021-13/+52
|
* Refactoring of conversion ops, part 5: drop TOINT/TOI64/TONUM.Mike Pall2010-12-311-126/+0
|
* Refactoring of conversion ops, part 4: use CONV instead of TOINT/TONUM.Mike Pall2010-12-311-6/+7
| | | | Also narrow CONV.int.num and CONV.i64.num.
* Refactoring of conversion ops, part 3: add FOLD rules for IR_CONV.Mike Pall2010-12-311-31/+222
|
* Copy destination type for CONV from ir->t to op2, too.Mike Pall2010-12-311-6/+4
|
* Refactoring of conversion ops, part 1: add IR_CONV.Mike Pall2010-12-301-0/+22
|
* FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs.Mike Pall2010-12-171-18/+9
|
* FFI: FOLD load of initializers even across PHIs.Mike Pall2010-12-171-1/+1
|
* Add alias analysis for XLOAD/XSTORE. Add DSE for XSTORE.Mike Pall2010-12-121-0/+3
|
* Add missing PHI barrier to strength reduction of widening.Mike Pall2010-12-121-0/+2
|