Re: silent effects of opcodes

2004-11-22 Thread Leopold Toetsch
Ben Morrow wrote: Quoth [EMAIL PROTECTED]: RESUMABLE: func_that_might_loop_through_cc() possibly accompanied with another markup of the function call that loops back. That can't work, because *any* function might loop back, unless you want to analyse the entire logic flow of the called

Re: silent effects of opcodes

2004-11-19 Thread Bill Coffman
On Thu, 18 Nov 2004 08:13:02 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: Bill Coffman [EMAIL PROTECTED] wrote: ps: I'm making progress on grokking the cfg and register renaming stuff. Will let you know. This needs an SSA graph of the data flow? Static Single-Assignment (I had to look

Re: silent effects of opcodes

2004-11-19 Thread Dan Sugalski
At 5:36 PM -0800 11/19/04, Bill Coffman wrote: Another thing I'd like to do, is throw in is a randomizer, to change the way the allocator assigns registers. Considering all the cruft that was uncovered when the algorithm was changed, it might be a good idea to have a debug feature that selects

imcc update (was: silent effects of opcodes)

2004-11-18 Thread Leopold Toetsch
Bill Coffman [EMAIL PROTECTED] wrote: Since I understand the item about allocating registers between sub calls, I can probably implement that change, as I work through the control flow/data flow analysis. I've no resynced pending changes with the old allocator and committed these changes.

Re: silent effects of opcodes

2004-11-18 Thread Dan Sugalski
At 8:26 AM +0100 11/18/04, Leopold Toetsch wrote: Dan Sugalski [EMAIL PROTECTED] wrote: Exceptions and continuations should be the same problem -- the target is the start of a basic block. (Well, more than that, as they're places where calling conventions potentially kick in) This means the

Re: silent effects of opcodes

2004-11-18 Thread Leopold Toetsch
Dan Sugalski wrote: If the point is to direct the allocator to flush temps and start fresh, then we should just do it: .flushtemps The point basically is to insert a loop into the CFG. When we have foo() ... bar() which is a linear control flow through these basic blocks, we need:

silent effects of opcodes

2004-11-17 Thread Leopold Toetsch
I've now (locally here) extended Bill Coffman's register allocator by one subroutine that actually decides to use non-volatiles or volatiles according to pdd03. All variables that are live around a subroutine call are e.g. allocated from R16..R31. Variables not alive around a call (temps) are

Re: silent effects of opcodes

2004-11-17 Thread Leopold Toetsch
Leopold Toetsch [EMAIL PROTECTED] wrote: [ setp_ind troubles ] I've found a way to force allocation to R16..R31 in the presence of this opcode. leo

Re: silent effects of opcodes

2004-11-17 Thread Leopold Toetsch
Bill Coffman [EMAIL PROTECTED] wrote: On Wed, 17 Nov 2004 14:14:18 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: I've now (locally here) extended Bill Coffman's register allocator by one subroutine that actually decides to use non-volatiles or volatiles according to pdd03. All variables that

Re: silent effects of opcodes

2004-11-17 Thread Dan Sugalski
At 7:34 PM +0100 11/17/04, Leopold Toetsch wrote: Bill Coffman [EMAIL PROTECTED] wrote: On Wed, 17 Nov 2004 14:14:18 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote: I've now (locally here) extended Bill Coffman's register allocator by one subroutine that actually decides to use non-volatiles or

Re: silent effects of opcodes

2004-11-17 Thread Leopold Toetsch
Dan Sugalski [EMAIL PROTECTED] wrote: At 7:34 PM +0100 11/17/04, Leopold Toetsch wrote: All registers are preserved, but some of these registers are used, either by implict opcodes or as return values. Erm, no. Unused registers in the 0-15 range are explicitly garbage: It was about usabalitiy

Re: silent effects of opcodes

2004-11-17 Thread Dan Sugalski
At 10:12 PM +0100 11/17/04, Leopold Toetsch wrote: Dan Sugalski [EMAIL PROTECTED] wrote: At 7:34 PM +0100 11/17/04, Leopold Toetsch wrote: All registers are preserved, but some of these registers are used, either by implict opcodes or as return values. Erm, no. Unused registers in the 0-15

Re: silent effects of opcodes

2004-11-17 Thread Bill Coffman
So to generalize. The following registers are available, under the following conditions: * Registers R16-R31 are always available for the allocator. * Registers R0-R15 are available between sub calls. That is, for any symbol, whose life range does not cross a subroutine. (This implies that all

Re: silent effects of opcodes

2004-11-17 Thread Dan Sugalski
At 2:02 PM -0800 11/17/04, Bill Coffman wrote: So to generalize. The following registers are available, under the following conditions: * [NEW] If register 15 or below is used, it should be cleared out, ZEROED, after it's last use and before the next sub call. This is for security reasons.

Re: silent effects of opcodes

2004-11-17 Thread Bill Coffman
* [NEW] If register 15 or below is used, it should be cleared out, ZEROED, after it's last use and before the next sub call. This is for security reasons. Obviously, these registers will not be the first choice to use. Nope -- this isn't the job of the register allocator. We aren't

Re: silent effects of opcodes

2004-11-17 Thread Leopold Toetsch
Bill Coffman [EMAIL PROTECTED] wrote: Since I understand the item about allocating registers between sub calls, I can probably implement that change, as I work through the control flow/data flow analysis. This is already implemented, parts of it are in CVS. Sounds like everything else is