- 27 Jun, 2007 2 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
This version should compile but is still incomplete as it introduces potential bugs at the places marked 'TODO FIXME NOW'. It is being recorded to help keep track of changes.
-
- 26 Jun, 2007 1 commit
-
-
Michael D. Adams authored
The return values were getting put in a LocalReg but that LocalReg needed to be stored into the enclosing expression's return register (e.g. R1).
-
- 21 Jun, 2007 1 commit
-
-
Michael D. Adams authored
-
- 19 Jun, 2007 1 commit
-
-
Michael D. Adams authored
-
- 13 Jun, 2007 1 commit
-
-
Michael D. Adams authored
-
- 06 Jun, 2007 2 commits
-
-
Michael D. Adams authored
This patch is incomplete and will probably not compile by itself but it is being recorded to help keep track of later changes.
-
Michael D. Adams authored
-
- 29 May, 2007 4 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
- 25 May, 2007 3 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
This frees the Cmm data type from keeping a list of live global registers in CmmCall which helps prepare for the CPS conversion phase. CPS conversion does its own liveness analysis and takes input that should not directly refer to parameter registers (e.g. R1, F5, D3, L2). Since these are the only things which could occur in the live global register list, CPS conversion makes that field of the CmmCall constructor obsolite. Once the CPS conversion pass is fully implemented, global register saving will move from codeGen into the CPS pass. Until then, this patch is worth scrutinizing and testing to ensure it doesn't cause any performance or correctness problems as the code passed to the backends by the CPS converting will look very similar to the code that this patch makes codeGen pass to the backend.
-
Michael D. Adams authored
-
- 24 May, 2007 2 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
-
- 23 May, 2007 7 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
- 22 May, 2007 3 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
Since a CmmCall returns CmmFormals which may include global registers (and indeed one place in the code returns the results of a CmmCall into BaseReg) and since CPS conversion will change those return slots into formal arguments for the continuation of the call, CmmProc has to have CmmFormals for the formal arguments. Oddly, the old code never made use of procedure arguments so this change only effects the types and not any of the code. (Because [] is both of type [LocalReg] and CmmFormals.)
-
Michael D. Adams authored
-
- 21 May, 2007 3 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
- 18 May, 2007 6 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
The function listSplitUniqSupply :: UniqSupply -> [UniqSupply] splits a UniqSupply into an infinite list of supplies. It is a generalization of splitUniqSupply.
-
Michael D. Adams authored
This is a safety check-in, before I begin a cleanup.
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
- 16 May, 2007 3 commits
-
-
Michael D. Adams authored
-
Michael D. Adams authored
-
Michael D. Adams authored
-
- 14 May, 2007 1 commit
-
-
Michael D. Adams authored
-