summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-01-28 18:12:54 -0500
committerbd <bdunahu@operationnull.com>2025-01-28 18:12:54 -0500
commit733838d0a55de74e25e879f9fcf43c5c5c78e24a (patch)
treec0a7ed819d45fb1abbb3128542add3c20437ecfe /src
parent5cea39649d613864f3e7a688cb2a7ecbde8bd6cd (diff)
Fix namespace issues related to IR symbols
Diffstat (limited to 'src')
-rw-r--r--src/backend/ast/ir.scm22
-rw-r--r--src/backend/emitter/traverse.scm48
-rw-r--r--src/backend/generator/allocate.scm4
-rw-r--r--src/backend/generator/assembly.scm20
-rw-r--r--src/backend/generator/expansion.scm24
-rw-r--r--src/backend/tacky/traverse.scm25
-rw-r--r--src/frontend/node.c4
7 files changed, 73 insertions, 74 deletions
diff --git a/src/backend/ast/ir.scm b/src/backend/ast/ir.scm
index e4c1713..2b4a468 100644
--- a/src/backend/ast/ir.scm
+++ b/src/backend/ast/ir.scm
@@ -1,14 +1,14 @@
(define-module (backend ast ir)
- #:export (prog
- srout
- neg
- not
- mov
- stack
- reg
- imm
- tmp
- ret))
+ #:export (prog-ir
+ srout-ir
+ neg-ir
+ not-ir
+ mov-ir
+ stack-ir
+ reg-ir
+ imm-ir
+ tmp-ir
+ ret-ir))
;;; Commentary:
;;;
@@ -24,4 +24,4 @@
(cons 'names args)) ...))))
(def-ir-nodes
- prog srout neg not mov stack reg imm tmp ret)
+ prog-ir srout-ir neg-ir not-ir mov-ir stack-ir reg-ir imm-ir tmp-ir ret-ir)
diff --git a/src/backend/emitter/traverse.scm b/src/backend/emitter/traverse.scm
index 0a5b4cc..e88f207 100644
--- a/src/backend/emitter/traverse.scm
+++ b/src/backend/emitter/traverse.scm
@@ -1,50 +1,50 @@
(define-module (backend emitter traverse)
- #:export (prog
- subrout
- instr
- allocate
- mov
- ret
- neg
- not
- allocate
- reg
- stack
- imm))
-
-
-(define (prog srout)
+ #:export (prog-ir
+ subrout-ir
+ instr-ir
+ allocate-ir
+ mov-ir
+ ret-ir
+ neg-ir
+ not-ir
+ allocate-ir
+ reg-ir
+ stack-ir
+ imm-ir))
+
+
+(define (prog-ir srout)
(string-append/shared srout ".section .note.GNU-stack,\"\",@progbits\n"))
-(define (srout label instrs)
+(define (srout-ir label instrs)
(format #f " .globl ~a
~a:
\tpushq\t%rbp
\tmovq\t%rsp, %rbp
~a" label label (apply string-append/shared instrs)))
-(define (mov src dst)
+(define (mov-ir src dst)
(format #f "\tmovl\t~a, ~a\n" src dst))
-(define (ret)
+(define (ret-ir)
"\tmovq\t%rbp, %rsp
\tpopq\t%rbp
\tret\n")
-(define (neg dst)
+(define (neg-ir dst)
(format #f "\tnegl\t~a\n" dst))
-(define (not dst)
+(define (not-ir dst)
(format #f "\tnotl\t~a\n" dst))
-(define (alloc size)
+(define (alloc-ir size)
(format #f "\tsubq\t$~a, %rsp\n" size))
-(define (reg r)
+(define (reg-ir r)
(format #f "%~a" r))
-(define (stack loc)
+(define (stack-ir loc)
(format #f "~a(%rbp)" loc))
-(define (imm int)
+(define (imm-ir int)
(format #f "$~a" int))
diff --git a/src/backend/generator/allocate.scm b/src/backend/generator/allocate.scm
index 0d417db..c5d7c05 100644
--- a/src/backend/generator/allocate.scm
+++ b/src/backend/generator/allocate.scm
@@ -7,8 +7,8 @@
(define (allocate n)
(cond
((null? n) n)
- ((eq? (car n) 'tmp)
- (list 'stack (make-location (cadr n))))
+ ((eq? (car n) 'tmp-ir)
+ (list 'stack-ir (make-location (cadr n))))
((list? (car n))
(cons (allocate (car n)) (allocate (cdr n))))
(#t
diff --git a/src/backend/generator/assembly.scm b/src/backend/generator/assembly.scm
index 8a110f3..205900b 100644
--- a/src/backend/generator/assembly.scm
+++ b/src/backend/generator/assembly.scm
@@ -2,17 +2,17 @@
#:use-module (backend ast ir)
#:use-module (backend utils assign-stack)
#:use-module (backend utils merge-instructions)
- #:export (instrs
- mov))
+ #:export (instrs-ir
+ mov-ir))
-(define (instrs lst)
- (cons 'list (cons (list 'alloc (abs (get-frame-size)))
+(define (instrs-ir lst)
+ (cons 'list (cons (list 'alloc-ir (abs (get-frame-size)))
(merge-instr lst))))
-(define (mov src dst)
- (if (and (eq? 'stack (car dst))
- (eq? 'stack (car src)))
- (append (list (list 'mov src (reg "r10d")))
- (list (list 'mov (reg "r10d") dst)))
- (list 'mov src dst)))
+(define (mov-ir src dst)
+ (if (and (eq? 'stack-ir (car dst))
+ (eq? 'stack-ir (car src)))
+ (append (list (list 'mov-ir src (reg-ir "r10d")))
+ (list (list 'mov-ir (reg-ir "r10d") dst)))
+ (list 'mov-ir src dst)))
diff --git a/src/backend/generator/expansion.scm b/src/backend/generator/expansion.scm
index 9fe2e0a..1745e23 100644
--- a/src/backend/generator/expansion.scm
+++ b/src/backend/generator/expansion.scm
@@ -1,23 +1,23 @@
(define-module (backend generator expansion)
#:use-module (backend ast ir)
#:use-module (backend utils merge-instructions)
- #:export (instrs
- not
- neg
- ret))
+ #:export (instrs-ir
+ not-ir
+ neg-ir
+ ret-ir))
-(define (instrs lst)
+(define (instrs-ir lst)
#f
- (list 'instrs (cons 'list (merge-instr lst))))
+ (list 'instrs-ir (cons 'list (merge-instr lst))))
-(define (not src dst) (unary 'not src dst))
-(define (neg src dst) (unary 'neg src dst))
+(define (not-ir src dst) (unary 'not-ir src dst))
+(define (neg-ir src dst) (unary 'neg-ir src dst))
-(define (ret src)
- (list (list 'mov src (list 'reg "eax"))
- (list 'ret)))
+(define (ret-ir src)
+ (list (list 'mov-ir src (list 'reg-ir "eax"))
+ (list 'ret-ir)))
(define (unary op src dst)
- (list (list 'mov src dst)
+ (list (list 'mov-ir src dst)
(list op dst)))
diff --git a/src/backend/tacky/traverse.scm b/src/backend/tacky/traverse.scm
index aec0f23..022d961 100644
--- a/src/backend/tacky/traverse.scm
+++ b/src/backend/tacky/traverse.scm
@@ -1,24 +1,23 @@
(define-module (backend tacky traverse)
#:use-module (backend ast ir)
- #:export (func
- stmt
- unary
- const))
+ #:export (func-ir
+ stmt-ir
+ ))
-(define (func name instrs)
- (list 'srout name instrs))
+(define (func-ir name instrs)
+ (list 'srout-ir name instrs))
-(define (stmt val)
- (list 'instrs
+(define (stmt-ir val)
+ (list 'instrs-ir
(cons 'list (append (cdr val)
- (list (list 'ret (car val)))))))
+ (list (list 'ret-ir (car val)))))))
-(define (expr op val)
+(define (expr-ir op val)
(make-instruction op (car val) (cdr val)))
-(define (const val)
- (cons (imm val) '()))
+(define (const-ir val)
+ (cons (imm-ir val) '()))
(define (make-instruction op src instrs)
(let ((dst (make-temporary)))
@@ -30,4 +29,4 @@
(let ((count 100))
(lambda ()
(set! count (1+ count))
- (list 'tmp count))))
+ (list 'tmp-ir count))))
diff --git a/src/frontend/node.c b/src/frontend/node.c
index 344b48a..095aece 100644
--- a/src/frontend/node.c
+++ b/src/frontend/node.c
@@ -4,8 +4,8 @@
#include <string.h>
#include <stdio.h>
-const char* node_types[] = {"prog", "func", "stmt", "expr", "const"};
-const char* node_ops[] = {"not", "neg", "plus", "minus", "mult", "div", "mod"};
+const char* node_types[] = {"prog-ir", "func-ir", "stmt-ir", "expr-ir", "const-ir"};
+const char* node_ops[] = {"not-ir", "neg-ir", "plus-ir", "minus-ir", "mult-ir", "div-ir", "mod-ir"};
Node *create_node(enum node_type type) {
Node *node = malloc(sizeof(Node));