Up to top level
compiler bugs   dustin's bugs   fixed   incoming   nonproblems   tests   website bugs  

Logged in as guest

Viewing incoming/37
Full headers

From: louised@dai.ed.ac.uk
Subject: Unable to perform Register Assignment
Compose reply
Download message
Move To:
1 replies: 1
1 followups: 1

Private message: yes  no

Notes:

Notification:


Date: Wed, 6 Dec 2000 07:58:29 -0600 (CST)
From: louised@dai.ed.ac.uk
To: teyjus@cs.umn.edu
Subject: Unable to perform Register Assignment
Full_Name: Louise Dennis
Version: 1.0-b30
OS: Solaris
Submission from: (NULL) (194.82.103.74)


On compilation I am getting the message 

Compiler error: unable to perform register assignment

I seem to be able to fix this by arbitrarily shortening the code (e.g. chopping
out
examples from the testing predicate).  

All this suggests that either there is not enough space in these registers or
I've
made my program unnecessarily large - This could be caused by my confusions
over how to correctly use import/accumulate etc (at the moment I accumulate
everything).

Reply 1

Resend
From: Gopalan Nadathur <teyjus@cs.umn.edu>
To: louised@dai.ed.ac.uk
Subject: Re: Unable to perform Register Assignment (PR#37)
Date: Tue Dec 12 20:20:27 2000
Hi Louise,

The message that the compiler is displaying indicates that there are
not enough abstract machine registers to handle some particular clause
(or clauses). Without knowing what code specifically is causing the
problem, I suspect that one of the examples in the testing predicate
has a really large term whose creation at run-time demands a large
number (> 256) of registers. The present compiler does not have
mechanisms for spilling registers into the environment and so it gives
up in such cases. This is a limitation that will be removed in an
upgraded compiler.

For the moment, here is a way you may be able to retain your large
example term: try to construct it through the application of smaller
terms.

I have a request to make. Might it be possible to experiment a little
to identify the particular testing predicate (or one of them) that is
causing the problem?  I would like to scan the compiled code just to
make sure that the compiler is not doing something silly as a result
of which it is running out of registers.

Finally, I don't think the problem has anything to do with the size of
some module.  Rather, as I explain above, it appears to be a problem
with the size of a term in a clause.

-Gopalan


Followup 1

Compose reply
Download message
Date: Thu, 18 Jan 2001 16:35:49 +0000
From: Louise Dennis <louised@dai.ed.ac.uk>
To: Gopalan Nadathur <teyjus@cs.umn.edu>
CC: teyjus@cs.uchicago.ed
Subject: Re: Unable to perform Register Assignment (PR#37)
This is a multi-part message in MIME format.
--------------DD038E3D7D239A526018E313
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Dear Gopalan

Sorry not to get back to you earlier.  This advice makes sense and I
will have an experiment here.  Your advice about the module system also
clarified things.

I've attached a tarball of the current lclam as requested.  Hopefully
the README and documentation (in the doc subdirectory) should be enough
to allow you to experiment with the system although it is all in a
pretty preliminary state.  You'll notice that I've not yet really
attempted to implement your suggestions about the module system.

You can get the compiler errors in two ways.

Firstly in src/planner/test.mod you can try uncommenting the section
that starts "Checking Generalisation".

Alternatively in src/theories/ordl.mod you can uncomment a selection of
clauses for the top_goal predicate and you will get the same behaviour -
though not necessarily for the same reason I suppose....

Louise

Gopalan Nadathur wrote:
> 
> Hi Louise,
> 
> The message that the compiler is displaying indicates that there are
> not enough abstract machine registers to handle some particular clause
> (or clauses). Without knowing what code specifically is causing the
> problem, I suspect that one of the examples in the testing predicate
> has a really large term whose creation at run-time demands a large
> number (> 256) of registers. The present compiler does not have
> mechanisms for spilling registers into the environment and so it gives
> up in such cases. This is a limitation that will be removed in an
> upgraded compiler.
> 
> For the moment, here is a way you may be able to retain your large
> example term: try to construct it through the application of smaller
> terms.
> 
> I have a request to make. Might it be possible to experiment a little
> to identify the particular testing predicate (or one of them) that is
> causing the problem?  I would like to scan the compiled code just to
> make sure that the compiler is not doing something silly as a result
> of which it is running out of registers.
> 
> Finally, I don't think the problem has anything to do with the size of
> some module.  Rather, as I explain above, it appears to be a problem
> with the size of a term in a clause.
> 
> -Gopalan
--------------DD038E3D7D239A526018E313
Content-Type: application/x-gzip;
 name="lambda-clam-teyjus.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="lambda-clam-teyjus.tar.gz"

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
I1PogEMb8Hg87I+HDQ

Message of length 155993 truncated

Up to top level
compiler bugs   dustin's bugs   fixed   incoming   nonproblems   tests   website bugs  

Logged in as guest


[ Home | Overview | Download | Language Documentation | Bug Tracking | Implementation Documentation | Links ]