Nicholas Clark <[EMAIL PROTECTED]> writes: >I have remembered the name correctly, haven't I? > >Would it gain us much implementing De Morgan's theorem in the peephole >optimiser?
It gets even more fun when there are NOTs on the other side as well... Speaking of which why does NOT have two UNOPs - can we collapse those ? > >nick@Bagpuss [nick]$ perl -MO=Terse -e 'print 0+(!$l && !$r)' >LISTOP (0x164048) leave [1] > OP (0x164070) enter > COP (0x164008) nextstate > LISTOP (0x163fc0) print > OP (0x163fe8) pushmark > BINOP (0x163f98) add [1] > SVOP (0x163db0) const IV (0xed2b8) 0 > UNOP (0x163f78) null > LOGOP (0x10db20) and > UNOP (0x163e68) not > UNOP (0x163e48) null [15] Why two UNOPs ? > SVOP (0x163dd0) gvsv GV (0x10a974) *l > UNOP (0x163f58) not > UNOP (0x163f38) null [15] > SVOP (0x163e88) gvsv GV (0x10a98c) *r >-e syntax OK >nick@Bagpuss [nick]$ perl -MO=Terse -e 'print 0+!($l || $r)' >LISTOP (0x164028) leave [1] > OP (0x164050) enter > COP (0x163fe8) nextstate > LISTOP (0x163fa0) print > OP (0x163fc8) pushmark > BINOP (0x163f78) add [1] > SVOP (0x163db0) const IV (0xed2b8) 0 > UNOP (0x163f58) not > UNOP (0x163f38) null > LOGOP (0x10db20) or > UNOP (0x163e48) null [15] > SVOP (0x163dd0) gvsv GV (0x10a974) *l > UNOP (0x163f18) null [15] > SVOP (0x163e68) gvsv GV (0x10a98c) *r >-e syntax OK > > >For "much" equal to 1 op in total. > >I think that the answer is "no, do it by hand if it matters that much", >doesn't it? > >This also might be a perl6 question, for a more "serious" -O2 optimiser. >Hmm. Would parrot benefit from nand and nor ops? > >[beware of cross posting when replying] > >Nicholas Clark -- Nick Ing-Simmons http://www.ni-s.u-net.com/