Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View

Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

f7aa5eb927b8...
Tyler J. Stachecki
os: Add support for private/OS-specific heaps.
Leverage heaps other than what is provided by the cstdlib
where possible. This commit mostly helps to drop a runtime
dependency on malloc/free for Windows builds.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
f56baec6c5f5...
Tyler J. Stachecki
compiler: Allow sets to "self allocate" themselves.
Set objects are generally about the same size as the nodes
which they contain. Thus, when allocating a set, allocate
the set on top of its own subblock allocator. This saves
the caller the hassle of having to find space themselves
at little to no cost of performance.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
f36e875a8ddf...
Tyler J. Stachecki
compiler: Add Briggs-Cooper-Harvey-Simpson.
This paper contains a lot of the algorithms used to
convert the CFG into minimal SSA form.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
f2f9329edd65...
Tyler J. Stachecki
compiler: Add Briggs-Cooper-Harvey-Simpson
This paper contains a lot of the algorithms used to
convert the CFG into minimal SSA form.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
e6906c38d178...
Tyler J. Stachecki
compiler: Add a stack data structure.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
dc4838e5d3fe...
Tyler J. Stachecki
compiler: Optimize renaming in SSA conversion.
Instead of pushing N entries onto the variable stack, one
for each renamed instance within a basic block, only push
one per variable per block (and update the top of the
stack as needed when there is more than 1 entry).

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
dbf2022c1121...
Tyler J. Stachecki
compiler: Reserve BB#0 for "null" comparison.
Since we're using integers to represent our basic block
numbers, reserve the first basic block (BB#0) and use it
as a "null" value.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
d73f20b09ea9...
Tyler J. Stachecki
compiler: Place phi nodes in stores during SSA.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
d466323b9b32...
Tyler J. Stachecki
gcc: Drop dependency on setjmp/longjmp.
If compiling with GCC (and I mean just that - not clang or
ICC), then use __builtin_setjmp and __builtin_longjmp in
leiu of libc's. This will help break dependence on MSVCRT
when targeting Windows.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
d41e15c5f58e...
Tyler J. Stachecki
compiler: Fix another allocator bug.
The set allocator was not expanding correctly: it would
allocate an entire new subblock page each time it needed
to allocate a new set node (and subsequently lose track of
the newly allocated subblock).

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
ccffb58d64a6...
Tyler J. Stachecki
compiler: Minor allocator optimizations.
Blocks should already have their memory zeroed out before
we dish out memory, so setting some fields to NULL is not
necessary.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
c445ce3a14a5...
Tyler J. Stachecki
compiler: Add some pure attributes to variable_ht.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
b16d10f5aad2...
Tyler J. Stachecki
os: Add support for native file access.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
aede2de6bd47...
Tyler J. Stachecki
compiler: Compute dominance frontier during SSA.
Compute the dominance frontier for each node and cache the
result in a bblist (along with the idom). The dominance
frontier will be used shortly to insert phi nodes into the
control flow graph where necessary.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-gcc-final: uploading cen64 -  
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
9d5163df1fb9...
Tyler J. Stachecki
os: Add support for native file access.
993b400417ce...
Tyler J. Stachecki
os: Fix a comment.
If malloc returns non-NULL pointers on failures, there
would probably be some issues arising as a result.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
987d1eada3d4...
Tyler J. Stachecki
compiler/lexer: optimizations from izy.
izy sent some optimizations for the lexer that remove
duplicate code and turn some messy if/else chain into a
series of ifs that may result in better generated code.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
8ee567a14637...
Tyler J. Stachecki
compiler: Add a set data structure.
CEN64's arena allocator is very inflexible and not well-
suited to hash tables (as they really require variable-
sized buckets to correct the distribution of items once
the load factor starts getting out of hand).

For that reason, add a tree (set) data structure, which
can be used to track countless numbers of items without
having to sacrifice the simplicity of CEN64's allocator).

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
8bc59a7d25f5...
Tyler J. Stachecki
compiler: Optimize dominator tree construction.
Instead of doing two passes on the list of basic blocks in
order to constructor the dominator tree, only perform one
pass (by making use of the bb_flag_list and by constructing
our immediate dominator's tree early if needed).

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
87cc59e74983...
Tyler J. Stachecki
compiler: Fix a parser bug.
When the parser inserts a new basic block for the
invariant, it must also insert a branch from the previous
basic block.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
7ba8de55e322...
Tyler J. Stachecki
compiler: Fix an allocator bug.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
7b55867e8d95...
Tyler J. Stachecki
compiler: Place phi nodes into CFG during SSA.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-gcc-final: uploading cen64 -  
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
776b95770361...
Tyler J. Stachecki
compiler: Remove an unused function.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-gcc-final: uploading cen64 -  
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
6ea615995823...
Tyler J. Stachecki
compiler: Add Briggs-Cooper-Harvey-Simpson.
This paper contains a lot of the algorithms used to
convert the CFG into minimal SSA form.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
589647f1a62a...
Tyler J. Stachecki
compiler: Add a set data structure.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-gcc-final: uploading cen64 -  
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
559f84299be1...
Tyler J. Stachecki
os: Add support for private/OS-specific heaps.
Leverage heaps other than what is provided by the cstdlib
where possible. This commit mostly helps to drop a runtime
dependency on malloc/free for Windows builds.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
4f87076de985...
Tyler J. Stachecki
compiler: Attempt to hoist a load in set.
Not sure if this will make a difference or not, but try
to coerce the compiler into hoisting the load for the tree
traversal before doing the check while doing set inserts.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
4efcef93252c...
Tyler J. Stachecki
compiler: Fix another allocator bug.
The allocator is expected to perform like calloc (i.e.,
all memory allocated shall be zeroed upon return from any
allocator function).

When cen64_arena_free_slack_and_unlock interface was added,
the used memory region was not begin zeroed out after it
was returned and causing problems with allocations further
down the line (which were expecting that the memory would
be wiped, but it was not).

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
4e380a43060a...
Tyler J. Stachecki
compiler: Optimize renaming in SSA a little more.
Some of the variable cloning logic was duplicated (as it
was mostly transcribed from literature). We can leverage
the fact that our stores and phis are almost identical.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
3e4896fd3659...
Tyler J. Stachecki
compiler: Rename variables during SSA.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-osxcross-final: uploading cen64 -  
3bc11136e503...
Tyler J. Stachecki
compiler: Fix a memory allocation bug in bblist.
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
2c2c1166be03...
Tyler J. Stachecki
compiler: Add an (ordered) set data structure.
CEN64's arena allocator is very inflexible and not well-
suited to hash tables (as they really require variable-
sized buckets to correct the distribution of items once
the load factor starts getting out of hand).

For that reason, add a tree (set) data structure, which
can be used to track countless numbers of items without
having to sacrifice the simplicity of CEN64's allocator).

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
1e8be0c9d6fa...
Tyler J. Stachecki
compiler: Rename variables during SSA conversion.
Rename variables so that the graph adheres to single
static assignment form.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
1c1e54a41904...
Tyler J. Stachecki
os: Add support for native file access.
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
1b72b63509d1...
Tyler J. Stachecki
compiler: Rename variables during SSA conversion.
Rename variables so that the graph adheres to single
static assignment form.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
0dabd5af474f...
Tyler J. Stachecki
compiler: Fix an issue with scoping rules.
The compiler's IR has no concept of scope. Thus, you could
previously write horrible code such as the following:

```
if (condition) (
  devar magic as i32
) else (
  devar magic as i32
)

assign value to magic
```

and the semantic analyzer would be unable to detect any
problems. This commit adds the minimal amount of scope
information to conditional branches in order to be able
to detect this sort of thing and disallow it.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-mingw-w64-final: uploading cen64.exe -  
07b023c0bbda...
Tyler J. Stachecki
compiler: Compute dominance frontier during SSA
Compute the dominance frontier for each node and cache the
result in a bblist (along with the idom). The dominance
frontier will be used shortly to insert phi nodes into the
control flow graph where necessary.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
073ccb75b456...
Tyler J. Stachecki
compiler/lexer: optimizations from izy
izy sent some optimizations for the lexer that remove
duplicate code and turn some messy if/else chain into a
series of ifs that may result in better generated code.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
  • debian-gnu_linux-x86_64-osxcross-final: uploading cen64 -  
06d1a523c5a8...
Tyler J. Stachecki
compiler: Optimize renaming in SSA a little more.
When populating phi nodes in immediate successors, we can
break out of the loop when scanning for our predecessor
index early (the compiler can't do this for us, as it does
not know that we're the only basic block in the list).

Also, augment the stack_top method so that it returns a
value if the stack does not currently have any items. In
most cases, this would be NULL... however, we can save a
conditional branch in mosts cases if it's not.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
034a11ec43ae...
Tyler J. Stachecki
compiler: Use sets instead of bblists.
Most of the SSA algorithms implemented so far expect to be
working with sets (not lists). Use sets throughout the SSA
pass where necessary.

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>