Logged in as guest
Viewing incoming/37 Full headers
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).
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
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