Wolfgang Bumiller
|
b39a748984
|
actually no :)
|
2013-06-22 20:31:50 +02:00 |
|
Dale Weiler
|
adc9e7bf22
|
Fix some more bugs (coverity you're a life saver)
|
2013-06-22 02:05:04 +00:00 |
|
Dale Weiler
|
bbffdde2dc
|
Fix some bugs and a memleak in the testsuite.
|
2013-06-22 01:56:22 +00:00 |
|
Dale Weiler
|
5429b6f189
|
Fix out of bound access
|
2013-06-22 01:16:24 +00:00 |
|
Dale Weiler
|
458cfcb48c
|
I'm assuming this is a bug since all other read tests compare with itself's ir_value, and only this one doesn't. Otherwise why would you need to load to an ir_value for vec?
|
2013-06-21 23:54:09 +00:00 |
|
Dale Weiler
|
ce23e95d0b
|
Remove a ton of dead code and document the one really insane case.
|
2013-06-21 23:40:51 +00:00 |
|
Dale Weiler
|
82fd7fcf68
|
Move code generator into ir_builder for earlier free. It's also a much more cleaner design than load parser->code for all ast/ir operations. We also have a proper chain'd design now (so making this a library will be easier).
|
2013-06-20 10:52:58 +00:00 |
|
Dale Weiler
|
11179a2a71
|
Major header reworking, this respects the namespaces properly. Makes object dependency more obvious, allows for better make caches, and prevents misuse of library features, i.e use con_* instead of printf.
|
2013-06-04 02:47:07 +00:00 |
|
Dale Weiler
|
f892b32335
|
Major export cleanup. Anything that was exported but wasn't used outside where it was implemented has been turned into static, and their exports have been removed. This actually makes the compiler compile slightly faster.
|
2013-05-29 03:29:04 +00:00 |
|
Wolfgang Bumiller
|
4d0a5af475
|
removing this dead code_init call
|
2013-05-07 19:59:06 +02:00 |
|
Wolfgang Bumiller
|
c5225b2fa1
|
fixing a few leaks - code_write doesn't delete the code object anymore, code_cleanup has to be called
|
2013-05-07 19:56:41 +02:00 |
|
Dale Weiler
|
dc6a7436ee
|
Expression has undefined behavior (left operand modifies code->globals->used, used by right operand): (code->globals)[(((vector_t*)((void *)code->globals)) - 1)->used++] = (code_genstring(code, global->constval.vstring)) Code has unspecified behavior. Order of evaluation of function parameters or subexpressions is not defined, so if a value is used and modified in different places not separated by a sequence point constraining evaluation order, then the result of the expression is unspecified.
|
2013-04-27 15:20:01 +00:00 |
|
Dale Weiler
|
785ab7c072
|
No more globals for codegen
|
2013-04-25 09:35:30 +00:00 |
|
Wolfgang Bumiller
|
73070395eb
|
these can be const now
|
2013-04-25 09:55:58 +02:00 |
|
Dale Weiler
|
10dd7aacfe
|
Apply some static where it belongs
|
2013-04-25 03:34:42 +00:00 |
|
Wolfgang Bumiller
|
3a4aba0b31
|
Grrrr
|
2013-04-24 17:47:42 +02:00 |
|
Dale Weiler
|
489ad486bc
|
Get it compiling in visual studio again.
|
2013-04-24 01:43:53 +00:00 |
|
Dale Weiler
|
160e7cf7ee
|
Remove trailing whitespace
|
2013-04-21 10:24:55 +00:00 |
|
Wolfgang Bumiller
|
46752af74b
|
parser_const_string now uses hashtables; hashtables may want to dup an empty string without it becoming NULL - also replacing ir_strdup with the new util_ one
|
2013-04-17 18:23:30 +02:00 |
|
Dale Weiler
|
ccc2eb3298
|
More function flatening
|
2013-04-14 01:14:14 +00:00 |
|
Dale Weiler
|
c74889f648
|
Fix some memory leaks.
|
2013-04-13 18:01:26 +00:00 |
|
Wolfgang Bumiller
|
a32f59b256
|
hopefully fix an off-by-1 vararg copy issue
|
2013-02-26 16:39:28 +01:00 |
|
Dale Weiler
|
b1d1aabbdd
|
Remove debug printf
|
2013-02-25 08:52:56 +00:00 |
|
Dale Weiler
|
aebab8b68a
|
Push definitions when -O0
|
2013-02-25 08:52:17 +00:00 |
|
Wolfgang Bumiller
|
3e3b8993aa
|
Lifetime analysis: Don't go through the blocks as a graph, instead, go through only the list.
The difference in code is rather small, but it's much faster.
|
2013-02-11 11:39:44 +01:00 |
|
Dale Weiler
|
b9f46f4ef7
|
Not an assembler instruction, but virtual instruction used by the IR.
|
2013-01-30 06:31:24 +00:00 |
|
Dale Weiler
|
36c5722273
|
Rename
|
2013-01-30 05:35:07 +00:00 |
|
Dale Weiler
|
d201cfe6b4
|
Work in progress options cleanup.
|
2013-01-30 05:24:30 +00:00 |
|
Wolfgang Bumiller
|
9b51e7085b
|
In this situation the values don't need to be in parameter order; fix: call-stores putting values into wrong extparams
|
2013-01-25 16:25:23 +01:00 |
|
Wolfgang Bumiller
|
69e29c3ef8
|
debug extparam naming shouldn't start at 8, it's confusing, param 9 is now named extparam0
|
2013-01-25 15:37:09 +01:00 |
|
Wolfgang Bumiller
|
81f3a6d186
|
fix an off-by-one bug when copying varargs
|
2013-01-16 21:04:08 +01:00 |
|
Wolfgang Bumiller
|
f8f4ad8ee5
|
a tiny speedup, seems like -O2 doesn't do that by itself
|
2013-01-15 20:57:30 +01:00 |
|
Wolfgang Bumiller
|
b311cd6163
|
that tempbool should have gone long ago...
|
2013-01-15 20:27:23 +01:00 |
|
Wolfgang Bumiller
|
d12e6e15c9
|
-flegacy-vector-maths, enabled by default
|
2013-01-14 11:15:06 +01:00 |
|
Wolfgang Bumiller
|
bec05f1bbb
|
apparently it's possible to segfault DP with a bad INSTR_LOAD_V - so the IR should not allow this
|
2013-01-13 21:00:13 +01:00 |
|
Wolfgang Bumiller
|
7fc88cfe5b
|
fix a build issue
|
2013-01-12 16:38:49 +01:00 |
|
Wolfgang Bumiller
|
47db74c699
|
this is useless and just confused me a lot, removing
|
2013-01-12 16:20:31 +01:00 |
|
Wolfgang Bumiller
|
cd543aad5e
|
added gen_function_varargs_copy
|
2013-01-12 14:48:56 +01:00 |
|
Wolfgang Bumiller
|
e8b5ad6625
|
mask -Olocal-temps by IR_FLAG_MASK_NO_LOCAL_TEMPS which now equals IR_FLAG_MASK_NO_OVERLAP - though HAS_ARRAYS usually suffices, but not for code which _depends_ on uninitialized variables
|
2013-01-12 14:03:54 +01:00 |
|
Wolfgang Bumiller
|
2a4ea74a97
|
ir_function stores max_varargs now
|
2013-01-12 14:01:16 +01:00 |
|
Wolfgang Bumiller
|
973122ed9b
|
ast_call now has a va_count which causes a store to reserved:va_count before the call
|
2013-01-12 13:29:47 +01:00 |
|
Wolfgang Bumiller
|
6df3c625b0
|
Added a flag to both ast and ir which enforces the generation of a globaldef for a value
|
2013-01-11 19:15:59 +01:00 |
|
Wolfgang Bumiller
|
f06a59e3c7
|
Fix a warning
|
2013-01-10 16:04:58 +01:00 |
|
Wolfgang Bumiller
|
9eefe90d78
|
removing a goto loop
|
2013-01-09 16:00:16 +01:00 |
|
Wolfgang Bumiller
|
a76ae11241
|
more IR dump verbosity; fix: MUL_VF/FV additional liferange must be propagated to the full vector when using a vector-member as float-parameter
|
2013-01-08 21:21:52 +01:00 |
|
Wolfgang Bumiller
|
d6809ed331
|
better solution to blockstart pointlife issues
|
2013-01-08 15:22:24 +01:00 |
|
Wolfgang Bumiller
|
ae97ff7a80
|
This should fix the -Olocal-temps issue; set v->unique_life for any v with a point-life - this is a bad solution: proper dead code elimination should be done instead
|
2013-01-07 14:55:05 +01:00 |
|
Wolfgang Bumiller
|
63e5bc91de
|
more info in the IR dump
|
2013-01-07 14:55:05 +01:00 |
|
Wolfgang Bumiller
|
99249c8fa3
|
Guard 2 peephole optimizations which should only work on the currently-last instruction by a check if it's actually really at the end...
|
2013-01-07 00:22:54 +01:00 |
|
Wolfgang Bumiller
|
ae09831227
|
Introducing TYPE_NOEXPR so that these undefined labels cannot be used on the expression side of goto ternary expressions; ast_label now is TYPE_NOEXPR; we may consider setting ast_ifthen to that too unless we want ifthen to return a value...
|
2013-01-03 12:49:21 +01:00 |
|