Commit Graph

135 Commits

Author SHA1 Message Date
Mike Pall
1f26961092 Refactoring of conversion ops, part 3: add FOLD rules for IR_CONV. 2010-12-31 03:47:30 +01:00
Mike Pall
65b194a2f8 Copy destination type for CONV from ir->t to op2, too. 2010-12-31 01:00:54 +01:00
Mike Pall
2ca2de7f0e Refactoring of conversion ops, part 1: add IR_CONV. 2010-12-30 00:35:32 +01:00
Mike Pall
255c6e8c87 FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs. 2010-12-17 17:20:04 +01:00
Mike Pall
c98132e182 FFI: FOLD load of initializers even across PHIs. 2010-12-17 16:47:28 +01:00
Mike Pall
74317fa0ef Add alias analysis for XLOAD/XSTORE. Add DSE for XSTORE. 2010-12-12 22:32:52 +01:00
Mike Pall
a403cb13e4 Add missing PHI barrier to strength reduction of widening. 2010-12-12 21:05:34 +01:00
Mike Pall
42f9b38663 Extend all FOLD rules to work on 64 bit integers. 2010-12-11 21:20:49 +01:00
Mike Pall
5f7e9173db Regroup FOLD rules for constant folding. 2010-12-11 20:08:07 +01:00
Mike Pall
cdac0fa2cb FFI: Add IR_CNEW/IR_CNEWI to allocate/init cdata objects. 2010-12-11 19:32:12 +01:00
Mike Pall
1d86090926 Strength-reduce 32 to 64 bit widening using scalar evolution analysis. 2010-12-09 16:12:59 +01:00
Mike Pall
4f0d3e8262 Apply narrowing optimization to IR_TOI64, too. 2010-12-08 21:03:45 +01:00
Mike Pall
f308e00e03 Add FOLD rule to reassociate 64 bit (x+k1)+k2. 2010-12-08 20:57:21 +01:00
Mike Pall
159f51d811 Add IR_TOI64. 2010-12-06 18:21:51 +01:00
Mike Pall
f6c4e8d3d7 Add FOLD rule to turn i << 1 into i + i. 2010-12-06 13:26:58 +01:00
Mike Pall
86fd2289f0 Add support for integer IR_MUL. 2010-12-06 12:54:00 +01:00
Mike Pall
a850b27da9 Avoid compiler warnings. 2010-12-06 03:07:10 +01:00
Mike Pall
db3d16bfd7 Add IR_XSTORE. 2010-12-06 01:48:19 +01:00
Mike Pall
281f426d60 Add minimal set of fold rules for KINT64. 2010-12-06 00:38:21 +01:00
Mike Pall
6a7605ec85 Rename IRT_PTR to IRT_P32. 2010-12-05 18:59:34 +01:00
Mike Pall
3ae27ffebe Drop redundant (UGE any +0). 2010-09-21 02:44:18 +02:00
Mike Pall
38628d93b8 Improve FOLD/CSE of field loads and array/hash refs across NEWREF. 2010-09-21 02:28:14 +02:00
Mike Pall
8dc76ee327 Add IR_VLOAD for vararg loads.
Also fixes the broken AA improvement in the last commit.
2010-09-14 19:58:27 +02:00
Mike Pall
847b9cf253 Record vararg expressions with varargs defined off-trace.
Add SLOAD variant to access the frame type/size.
2010-09-13 01:17:38 +02:00
Mike Pall
844e40d700 PPC: Clean up masked shift/rotate target settings. 2010-08-29 12:52:20 +02:00
Mike Pall
ab45481199 No longer let the GC replace dead keys with the LJ_TDEADKEY tag.
Important: this changes the semantics of the write barrier!
Carefully read the big comment block in lj_obj.h
This helps HREFK key slot specialization and allows safely hoisting
HREF/HREFK across GC steps, too (fix for a barely reproducible bug).
Dead keys are only removed during a table resize (as before).
2010-04-21 01:45:58 +02:00
Mike Pall
1d1d9221f3 Fold HREF of TNEW/TDUP to niltv. Fold HLOAD of niltv to nil. 2010-03-28 06:53:41 +02:00
Mike Pall
c4727220e8 Add array bounds check elimination (-Oabc, on by default). 2010-03-15 17:02:53 +01:00
Mike Pall
a25a717089 Fix folding of (comparison x x). 2010-03-14 17:10:47 +01:00
Mike Pall
370c868c31 RETF modifies BASE. Treat it like a store or it gets CSEd. 2010-02-04 21:36:32 +01:00
Mike Pall
99d153bef9 Improve alias analysis of upvalues using a disambiguation hash value.
All upvalue objects hold a disambiguation hash value now.
It's built from the parent prototype and the slot number.
Different hash values imply the upvalues cannot alias.
Same hash values don't imply anything (collision or different closures).
Upvalue disambiguation makes use of a reduced hash due to IR contraints.
2010-01-09 23:59:43 +01:00
Mike Pall
4d9be5b8f8 Bump all copyright dates to 2010. 2010-01-09 14:28:11 +01:00
Mike Pall
3f1f9e11f4 Fast forward to sync public repo.
Compile math.sinh(), math.cosh(), math.tanh() and math.random().
Compile various io.*() functions.
Drive the GC forward on string allocations in the parser.
Improve KNUM fuse vs. load heuristics.
Add abstract C call handling to IR.
2009-12-08 20:35:29 +01:00
Mike Pall
1d1fed48a0 RELEASE LuaJIT-2.0.0-beta2 2009-12-08 19:49:20 +01:00
Mike Pall
55b1695971 RELEASE LuaJIT-2.0.0-beta1 2009-12-08 19:46:35 +01:00