Commit graph

874 commits

Author SHA1 Message Date
Quentin Carbonneaux
865964706f use bsiter() for better performance 2016-04-05 15:15:19 -04:00
Quentin Carbonneaux
f6bd53d2ad speedup bscount() 2016-04-05 15:01:51 -04:00
Quentin Carbonneaux
7d37d0a7a4 yay, support freebsd 2016-04-05 14:08:04 -04:00
Quentin Carbonneaux
7b3f0f8424 fat il! 2016-04-04 15:44:43 -04:00
Quentin Carbonneaux
74562a93de reorder instructions 2016-04-04 14:45:49 -04:00
Quentin Carbonneaux
f71206500c cosmetics in sysv abi
A struct of size 0 is now marked as passed in memory.
All the ABI code assumes structs passed in registers
have size at least 8.  This could have an impact on
the alignment in the stack, but eh, I guess they are
rare.
2016-04-04 12:55:32 -04:00
Quentin Carbonneaux
62c275fc75 remove old selpar() code 2016-04-04 10:44:30 -04:00
Quentin Carbonneaux
5371a70266 fix alignment code in selpar() 2016-04-03 22:01:58 -04:00
Quentin Carbonneaux
ecb2fe88dc rewrite of selpar() for factoring 2016-04-03 21:47:37 -04:00
Quentin Carbonneaux
ba2e93b124 typo in readme 2016-04-01 16:53:45 -04:00
Quentin Carbonneaux
b086225897 don't try to keep use counts in abi()
Abi lowering does not need use counts, but
they are needed for instruction selection.
I changed main to call filluse() between
these two passes.
2016-04-01 16:15:03 -04:00
Quentin Carbonneaux
d14e885325 cheap massive performance gain on brainfuck 2016-04-01 10:51:06 -04:00
Quentin Carbonneaux
e7825e70d5 tradeoff the type of bsiter()
int is used all over the place for temporaries,
maybe this should be changed, I don't know.

Another thing to consider is that temporaries
are currently on 12 bits (and will be on 29
or 30 bits in the future), so int will always be
safe to store them.  We just loose the free
invariant of non-negativity.
2016-04-01 10:41:53 -04:00
Quentin Carbonneaux
6a2c880543 use bsiter in critical loop 2016-04-01 10:06:58 -04:00
Quentin Carbonneaux
bb0dc28eb8 add huge mandelbrot brainfuck example 2016-04-01 09:57:14 -04:00
Quentin Carbonneaux
b28cedba99 add big test file for qbe 2016-04-01 09:53:31 -04:00
Quentin Carbonneaux
23c55ceb91 respect the order of the passes 2016-03-31 17:18:33 -04:00
Quentin Carbonneaux
0a81036fa2 move abi code in a new file 2016-03-31 17:17:09 -04:00
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