zig/std/math
Andrew Kelley 0ea50b3157 ir: new pass iteration strategy
Before:
 * IR basic blocks are in arbitrary order
 * when doing an IR pass, when a block is encountered, code
   must look at all the instructions in the old basic block,
   determine what blocks are referenced, and queue up those
   old basic blocks first.
 * This had a bug (See #667)

Now:
 * IR basic blocks are required to be in an order that guarantees
   they will be referenced by a branch, before any instructions
   within are referenced.
   ir pass1 is updated to meet this constraint.
 * When doing an IR pass, we iterate over old basic blocks
   in the order they appear. Blocks which have not been
   referenced are discarded.
 * After the pass is complete, we must iterate again to look
   for old basic blocks which now point to incomplete new
   basic blocks, due to comptime code generation.
 * This last part can probably be optimized - most of the time
   we don't need to iterate over the basic block again.

closes #667
2018-01-02 21:08:12 -05:00
..
acos.zig ir: new pass iteration strategy 2018-01-02 21:08:12 -05:00
acosh.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
asin.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
asinh.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
atan2.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
atan.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
atanh.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
cbrt.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
ceil.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
copysign.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
cos.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
cosh.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
exp2.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
exp.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
expm1.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
expo2.zig explicitly return from blocks 2017-12-22 00:50:30 -05:00
fabs.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
floor.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
fma.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
frexp.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
hypot.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
ilogb.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
index.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
inf.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
isfinite.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
isinf.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
isnan.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
isnormal.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
ln.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
log1p.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
log2.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
log10.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
log.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
modf.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
nan.zig explicitly return from blocks 2017-12-22 00:50:30 -05:00
pow.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
round.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
scalbn.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
signbit.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
sin.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
sinh.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
sqrt.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
tan.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
tanh.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00
trunc.zig move std/debug.zig to a subdirectory 2017-12-23 22:15:48 -05:00