Skip to content

Commit

Permalink
Adopt new directory structure
Browse files Browse the repository at this point in the history
  • Loading branch information
vlasakm committed Jul 29, 2023
1 parent e2887fe commit 9f2c841
Show file tree
Hide file tree
Showing 38 changed files with 115 additions and 103 deletions.
45 changes: 24 additions & 21 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -33,29 +33,32 @@ add_project_arguments(

exe = executable('tcg',
sources: files(
'src/arena.c',
'src/worklist.c',
'src/str.c',
'src/table.c',
'src/environment.c',
'src/bitset.c',
'src/utils.c',
'src/type.c',
'src/ir.c',
'src/utils/arena.c',
'src/utils/worklist.c',
'src/utils/str.c',
'src/utils/table.c',
'src/utils/environment.c',
'src/utils/bitset.c',
'src/utils/utils.c',

'src/value_numbering.c',
'src/merge_blocks.c',
'src/thread_jumps.c',
'src/split_critical_edges.c',
'src/single_exit.c',
'src/deconstruct_ssa.c',
'src/frontend/c/parser.c',

'src/middleend/type.c',
'src/middleend/ir.c',

'src/middleend/passes/value_numbering.c',
'src/middleend/passes/merge_blocks.c',
'src/middleend/passes/thread_jumps.c',
'src/middleend/passes/split_critical_edges.c',
'src/middleend/passes/single_exit.c',
'src/middleend/passes/deconstruct_ssa.c',

'src/backend/inst.c',
'src/backend/regalloc.c',
'src/backend/x86-64/x86-64.c',
'src/backend/x86-64/lower.c',
'src/backend/x86-64/peephole.c',

'src/inst.c',
'src/regalloc.c',
'src/parser.c',
'src/x86-64.c',
'src/lower.c',
'src/peephole.c',
'src/main.c',
),
include_directories: include_directories(
Expand Down
2 changes: 1 addition & 1 deletion src/inst.c → src/backend/inst.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "inst.h"
#include "x86-64.h"
#include "x86-64/x86-64.h"

MFunction *
mfunction_create(Arena *arena, Function *function, GArena *labels)
Expand Down
4 changes: 2 additions & 2 deletions src/inst.h → src/backend/inst.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

#include "utils.h"
#include "ir.h"
#include "../utils/utils.h"
#include "../middleend/ir.h"

typedef struct Inst Inst;
struct Inst {
Expand Down
10 changes: 5 additions & 5 deletions src/regalloc.c → src/backend/regalloc.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#include "arena.h"
#include "../utils/arena.h"
#include "../utils/worklist.h"
#include "../utils/bitset.h"
#include "../utils/utils.h"
#include "inst.h"
#include "worklist.h"
#include "bitset.h"
#include "utils.h"
#include "x86-64.h"
#include "x86-64/x86-64.h"

#include "regalloc.h"

Expand Down
2 changes: 1 addition & 1 deletion src/regalloc.h → src/backend/regalloc.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include "arena.h"
#include "../utils/arena.h"
#include "inst.h"

typedef struct RegAllocState RegAllocState;
Expand Down
4 changes: 2 additions & 2 deletions src/lower.c → src/backend/x86-64/lower.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "ir.h"
#include "inst.h"
#include "../../middleend/ir.h"
#include "../inst.h"
#include "x86-64.h"

typedef struct {
Expand Down
4 changes: 2 additions & 2 deletions src/peephole.c → src/backend/x86-64/peephole.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "utils.h"
#include "inst.h"
#include "../../utils/utils.h"
#include "../inst.h"
#include "x86-64.h"

bool
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/x86-64.h → src/backend/x86-64/x86-64.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include "inst.h"
#include "../inst.h"

#define IREG(inst) ((inst)->ops[0])
#define IREG1(inst) ((inst)->ops[0])
Expand Down
4 changes: 2 additions & 2 deletions src/parser.c → src/frontend/c/parser.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "parser.h"
#include "table.h"
#include "environment.h"
#include "../../utils/table.h"
#include "../../utils/environment.h"

typedef struct {
const u8 *pos;
Expand Down
8 changes: 4 additions & 4 deletions src/parser.h → src/frontend/c/parser.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#pragma once

#include "utils.h"
#include "arena.h"
#include "str.h"
#include "ir.h"
#include "../../utils/utils.h"
#include "../../utils/arena.h"
#include "../../utils/str.h"
#include "../../middleend/ir.h"

Module *parse(Arena *arena, GArena *scratch, Str source, void (*error_callback)(void *user_data, const u8 *err_pos, const char *msg, va_list ap), void *user_data);
19 changes: 12 additions & 7 deletions src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,18 @@
#include <errno.h>
#include <unistd.h>

#include "utils.h"
#include "arena.h"
#include "str.h"
#include "x86-64.h"
#include "inst.h"
#include "parser.h"
#include "regalloc.h"
#include "utils/utils.h"
#include "utils/arena.h"
#include "utils/str.h"

#include "frontend/c/parser.h"

#include "middleend/ir.h"
#include "middleend/passes.h"

#include "backend/inst.h"
#include "backend/regalloc.h"
#include "backend/x86-64/x86-64.h"

typedef struct {
bool assemble;
Expand Down
2 changes: 1 addition & 1 deletion src/ir.c → src/middleend/ir.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "ir.h"
#include "utils.h"
#include "../utils/utils.h"

char *value_kind_repr[] = {
#define REPR(kind, repr) repr,
Expand Down
27 changes: 3 additions & 24 deletions src/ir.h → src/middleend/ir.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ typedef struct MFunction MFunction;
typedef struct Block Block;
typedef struct MBlock MBlock;

#include "utils.h"
#include "arena.h"
#include "str.h"
#include "../utils/utils.h"
#include "../utils/arena.h"
#include "../utils/str.h"
#include "type.h"

#define VALUE_KINDS(_) \
Expand Down Expand Up @@ -247,24 +247,3 @@ typedef struct {
void print_globals(FILE *f, Module *module);

Field *get_member(Value *value);


// IR passes (each in its own file)

// value_numbering.c
void value_numbering(Arena *arena, Function *function);

// merge_blocks.c
void merge_blocks(Arena *arena, Function *function);

// thread_jumps.c
void thread_jumps(Arena *arena, Function *function);

// split_critical_edges.c
void split_critical_edges(Arena *arena, Function *function);

// single_exit.c
void single_exit(Arena *arena, Function *function);

// deconstruct_ssa.c
void deconstruct_ssa(Arena *arena, Function *function);
21 changes: 21 additions & 0 deletions src/middleend/passes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#include "ir.h"

// IR passes (each in its own file)

// value_numbering.c
void value_numbering(Arena *arena, Function *function);

// merge_blocks.c
void merge_blocks(Arena *arena, Function *function);

// thread_jumps.c
void thread_jumps(Arena *arena, Function *function);

// split_critical_edges.c
void split_critical_edges(Arena *arena, Function *function);

// single_exit.c
void single_exit(Arena *arena, Function *function);

// deconstruct_ssa.c
void deconstruct_ssa(Arena *arena, Function *function);
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ir.h"
#include "../ir.h"

void
deconstruct_ssa(Arena *arena, Function *function)
Expand Down
2 changes: 1 addition & 1 deletion src/merge_blocks.c → src/middleend/passes/merge_blocks.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ir.h"
#include "../ir.h"

void
merge_blocks(Arena *arena, Function *function)
Expand Down
2 changes: 1 addition & 1 deletion src/single_exit.c → src/middleend/passes/single_exit.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ir.h"
#include "../ir.h"

typedef struct {
Block *block;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ir.h"
#include "../ir.h"

void
split_critical_edges(Arena *arena, Function *function)
Expand Down
2 changes: 1 addition & 1 deletion src/thread_jumps.c → src/middleend/passes/thread_jumps.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ir.h"
#include "../ir.h"

// NOTE: May introduce critical edges.
void
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "ir.h"
#include "../ir.h"

static void
get_uses(Function *function)
Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions src/type.h → src/middleend/type.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
#include <stddef.h>
#include <stdbool.h>

#include "utils.h"
#include "str.h"
#include "arena.h"
#include "../utils/utils.h"
#include "../utils/str.h"
#include "../utils/arena.h"

typedef enum {
TY_VOID,
Expand Down
46 changes: 25 additions & 21 deletions src/one.c
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
#include "arena.c"
#include "worklist.c"
#include "str.c"
#include "table.c"
#include "environment.c"
#include "bitset.c"
#include "utils.c"
#include "type.c"
#include "ir.c"
#include "inst.c"
#include "regalloc.c"
#include "parser.c"
#include "x86-64.c"
#include "lower.c"
#include "peephole.c"
#include "utils/arena.c"
#include "utils/worklist.c"
#include "utils/str.c"
#include "utils/table.c"
#include "utils/environment.c"
#include "utils/bitset.c"
#include "utils/utils.c"

#include "frontend/c/parser.c"

#include "middleend/type.c"
#include "middleend/ir.c"

#include "middleend/passes/value_numbering.c"
#include "middleend/passes/merge_blocks.c"
#include "middleend/passes/thread_jumps.c"
#include "middleend/passes/split_critical_edges.c"
#include "middleend/passes/single_exit.c"
#include "middleend/passes/deconstruct_ssa.c"

#include "backend/inst.c"
#include "backend/regalloc.c"
#include "backend/x86-64/x86-64.c"
#include "backend/x86-64/lower.c"
#include "backend/x86-64/peephole.c"

#include "value_numbering.c"
#include "merge_blocks.c"
#include "thread_jumps.c"
#include "split_critical_edges.c"
#include "single_exit.c"
#include "deconstruct_ssa.c"

#include "main.c"
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 9f2c841

Please sign in to comment.