Commit graph

856 commits

Author SHA1 Message Date
Quentin Carbonneaux
729aa97b79 cleanup error handling 2016-03-31 09:15:50 -04:00
Quentin Carbonneaux
beec05cd3b do not echo compilation commands if verbose 2016-03-29 21:53:23 -04:00
Quentin Carbonneaux
fbbd2252aa typos in il.txt, thanks Robert Ransom 2016-03-29 17:35:37 -04:00
Quentin Carbonneaux
3ea138853d get more entropy in callgen.ml 2016-03-29 10:28:21 -04:00
Quentin Carbonneaux
e4da265b50 make block labels per-function 2016-03-29 10:10:27 -04:00
Quentin Carbonneaux
b75cb8388f new layout, put LICENSE in root 2016-03-29 10:10:22 -04:00
Quentin Carbonneaux
1b4943eb1f implement export control 2016-03-28 14:57:20 -04:00
Quentin Carbonneaux
54d734f6a4 mac os compatibility fixes in scripts 2016-03-27 19:35:19 -04:00
Quentin Carbonneaux
205221226f move check rule into src/ 2016-03-27 19:13:34 -04:00
Quentin Carbonneaux
3406a5fb2f free memory in pmov test 2016-03-27 18:35:21 -04:00
Quentin Carbonneaux
2f2d99e63f fix path in regress 2016-03-27 18:26:14 -04:00
Quentin Carbonneaux
32590f3a6c fix wrong path in pmov 2016-03-27 18:21:29 -04:00
Quentin Carbonneaux
c21581647b compile pmov to cwd 2016-03-27 18:20:51 -04:00
Quentin Carbonneaux
ff79d2abae move paper synchronization to top makefile 2016-03-27 18:20:34 -04:00
Quentin Carbonneaux
da640c5a46 move tools to the root 2016-03-27 18:17:08 -04:00
Quentin Carbonneaux
e38c61d95f add centralized all and clean targets 2016-03-27 18:05:27 -04:00
Quentin Carbonneaux
c46e1ba7b5 append instead of clobber CFLAGS 2016-03-27 15:24:55 -04:00
Quentin Carbonneaux
6405a0742f use make variable for extensibility 2016-03-27 15:05:26 -04:00
Quentin Carbonneaux
36635660b4 extract tests out of src 2016-03-27 15:00:45 -04:00
Quentin Carbonneaux
aad52241c8 compatibility fixes for mac os 2016-03-25 20:34:15 -04:00
Quentin Carbonneaux
62e238a6ef great renaming campain! 2016-03-25 14:02:43 -04:00
Quentin Carbonneaux
97b58def96 mark diag() as non-returning 2016-03-25 10:56:35 -04:00
Quentin Carbonneaux
87dfb081d6 update pmov test to work with new regalloc 2016-03-25 10:56:02 -04:00
Quentin Carbonneaux
087b7bf978 dark types are called opaque in the doc 2016-03-24 13:44:55 -04:00
Quentin Carbonneaux
ddd4f43a39 change IR to IL 2016-03-24 13:36:29 -04:00
Quentin Carbonneaux
993ca957ef typos in llvm.txt (thanks lucie) 2016-03-23 22:33:36 -04:00
Quentin Carbonneaux
84fbd00237 add comparison to llvm 2016-03-23 21:56:15 -04:00
Quentin Carbonneaux
607ab68f0c allow testing the two directions in abitest 2016-03-22 14:42:37 -04:00
Quentin Carbonneaux
5e62b615c4 bake more fancy in abitest.sh 2016-03-22 13:59:48 -04:00
Quentin Carbonneaux
fc115427dd fix struct size computation 2016-03-22 13:39:02 -04:00
Quentin Carbonneaux
59e78fe969 fix incorrect size suffix in abi fuzzer 2016-03-22 12:23:53 -04:00
Quentin Carbonneaux
a67ffa423c check for overflow in ssa.c (abi fuzzer) 2016-03-22 12:16:09 -04:00
Quentin Carbonneaux
337b10f6ed store register usage of ret instructions (abi fuzz)
So far I was ignoring register uses of return instructions
and it was working because at most one register could be
returned.  Now that more complex returns are supported it
is necessary to keep track of the registers used by
returns.

The abi fuzzer triggered an assertion failure in the
register allocator with the following IL:

        R1 =l load [%t16]
        R3 =l load [8 + %t16]
        ret

The regalloc would use R1 for %t16, and then a (nice)
assertion realized the inconsistent state because R1
could only be def'd by an assignment to %t16.
2016-03-22 11:53:57 -04:00
Quentin Carbonneaux
5ad3eaa75a typo in lexing table (abi fuzzer) 2016-03-22 10:59:16 -04:00
Quentin Carbonneaux
9db053d1b8 typo in isel (abi fuzzer) 2016-03-22 10:40:54 -04:00
Quentin Carbonneaux
cbb0f5aa83 cleanup at the end of abitest.sh 2016-03-22 10:35:36 -04:00
Quentin Carbonneaux
14628baf40 dumb switch mistake in isel (abi fuzzer) 2016-03-22 10:34:39 -04:00
Quentin Carbonneaux
b8e3bc6aa0 fix bug in type definitions in abi.ml 2016-03-22 10:34:39 -04:00
Quentin Carbonneaux
665a45003a fix incorrect size increment in abi (abi fuzzer)
Sizes are expressed in multiples of 4 bytes, so
we need to divide the size of aggregate types by
four when computing stack offsets.
2016-03-22 10:34:31 -04:00
Quentin Carbonneaux
6b58aaa7ea add the ability to run with a seed 2016-03-21 13:55:38 -04:00
Quentin Carbonneaux
453baf68e0 fix bug in IL checking 2016-03-21 13:55:25 -04:00
Quentin Carbonneaux
58e0505068 compile tests with debug options 2016-03-21 13:44:22 -04:00
Quentin Carbonneaux
890e85c8d1 add abitest.sh tool 2016-03-21 13:42:16 -04:00
Quentin Carbonneaux
e004f1dd48 wrap up abi.ml with a main function 2016-03-21 13:41:47 -04:00
Quentin Carbonneaux
3b6dc136a5 tools/abi.ml seems to work 2016-03-21 13:09:24 -04:00
Quentin Carbonneaux
2ff47b8c17 start il generation 2016-03-20 21:59:29 -04:00
Quentin Carbonneaux
2829059c8a finish OutC, use uniform distributions 2016-03-20 12:23:46 -04:00
Quentin Carbonneaux
a5c00b144c ocaml and c chars are incompatible 2016-03-20 09:43:20 -04:00
Quentin Carbonneaux
f0a91ffe5e start C dumping 2016-03-19 22:51:53 -04:00
Quentin Carbonneaux
5f45999036 add code to generate types 2016-03-19 19:01:00 -04:00