Older blog entries for rth (starting at number 9)

So I've been lame. I wondered how long this would take. About a week it seems.

Lots o' condexec hacking over the past week. Merged 200k of patches in 14 parts last night. Halfway done, though the really hard part is over. Bushed.

Got nice-n-toasty at the bar until the dj came in and started being excessively loud. Tool.

Lots of condexec hacking today. Talked to wilson and runrau about using branch prediction info during if-conversion. Realized how suboptimial this first cut is likely to be. Need to spend some time looking through papers soon (trimaran and uiuc come to mind).

Hopefully I'll get the first cut on the non-trivial transformations finished enough to be functional tomorrow. If so, I'll have the pleasure of deleting 2100 lines of butt-ugly jump.c code.

DaveM is no L33T HaX0r, he's a prentice butt munch Kwake L00s3R. If he wuz 4 reel master, he'd be plaing uNreel Tournamint.

Implemented __builtin_expect for current cvs. This was a Cygnus local feature done ages ago, but in a moderately kludgy way. At the same time, I got to seriously look at the block reordering code that Stan did earlier this year. It's looking pretty good. Even without profile feedback or explicit annotations, estimate_probabilities seems to come up with reasonable guesses a lot of the time. It'll be good when Jason finishes fixing the debug info interactions so we can turn this on for real.

Franz ran into yet another problem with the new flow code. Seems the PPC backend is being naughty with eliminible registers. Geoff was non-committal about fixing it, at least right away. I suppose we can hack around the problem for now.

Nasty structure passing bug uncovered in the sibcall code. No fucking clue how to fix it properly. But if we did solve it properly, we'd have automatically fixed the REG_EQUAL backing store uncleanliness at the same time. Should discuss alternatives with Law tomorrow.

Overdosed on adrenaline by playing twitchy video games with Jamie and the SubG all afternoon. The new maps in Rouge Spear: Urban Operations are pretty cool.

It was too pretty outside to get very excited about hacking, and as a consequence very little got accomplished.

Fixed (hopefully) rearnshaw's ARM problems; fixed kenner's stupid extract_muldiv bug; looked at franz' PPC bootstrap problem long enough to see that it is ugly.

Ok, that's three in a row. I hate solicitors. I hate being called by them. I don't get as much joy as I ought by telling them to fuck off and die. They should all be rounded up and shot. I need procmail for my phone.

And now I plan on unplugging the phone and curling up with sugar and a trashy novel.

Reverted the functional changes from this weekend's flow merging. I've got to get a better handle on the illogic at work here.

Got a couple hours worth of code review in this evening, so at least I can lay claim to some forward progress today.

Binutils work all day. Blah. Who'd have believed folks would be building 96MB shared libraries?

Anyway, patch delivered.

Spent more time than I'd like to think about on the ppc cross-host thing this morning, but eventually reproduced the problem from an x86 cross. Nothing but irritation from start to finish. No fix yet, though it appears to be a latent bug in combine.

Earnshaw reported a different bug from Friday's flow changes that affect ARM; some mem sharing ugliness exposed by more aggressive postinc opts. Odd, there shouldn't have been more postinc opts.

Beer was most definitely called for. I could have done without the Sharks losing; that sorta put a wet towel on the atmosphere at the bar.

It hasn't been my weekend.

Took a break from the conditional execution code to implement the IEEE unordered comparison operators for ia32. While I was at it, I rearranged things such that all fp branches are kept as a compare and branch unit during early compilation. This under the theory that optimizations that want to adjust the comparison will not have to give up in the face of a sequence of mask and compare operations. The code works for small tests such as fp-cmp-4.c in the testsuite, but since normal fp comparisons are affected by the change, I'm running Plum Hall et al before checking anything in.

GeoffK's tinderbox runs turned up some ppc failures with yesterday's flow.c changes. The simple fix turned up different regressions. Much time was wasted trying to set up an ppc cross-host environment on my alphas. Not sure what the problem is, exactly, except that it isn't the same error tinderbox reported -- probably some 64-bit forgetfulness in the md. I should just give that up and track down the problem on Geoff's machine... Sigh.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!