Wolfgang Bumiller
|
702a7664de
|
Don't allow a stale 'some_type;' declaration without an actual variable name; Same for typedef; closes #119
|
2013-08-31 11:35:12 +02:00 |
|
Wolfgang Bumiller
|
2ff9adecb2
|
this one can be reached - make it a little more helpful
|
2013-08-31 10:55:03 +02:00 |
|
Wolfgang Bumiller
|
79219ae201
|
factor check for assignment-to-constant into a function; improve its error output; closes #122
|
2013-08-31 10:39:31 +02:00 |
|
Wolfgang Bumiller
|
87b9fca732
|
fix unhelpful error message; fixes #123
|
2013-08-31 10:19:10 +02:00 |
|
Wolfgang Bumiller
|
ff6d55aafc
|
this should allow for better detection of precedence issues
|
2013-08-29 10:22:48 +02:00 |
|
Wolfgang Bumiller
|
fa468e0673
|
also warn about mixing logical and/or operations without parenthesis
|
2013-08-29 08:26:17 +02:00 |
|
Wolfgang Bumiller
|
f140c39063
|
warn when mixing different bitops without parenthesis around them
|
2013-08-29 08:18:06 +02:00 |
|
Dale Weiler
|
a7c1f6f021
|
Implement [[eraseable]] attribute. When used with a function it instructs the AST (which than transfers logic to the IR) that the function (or variable) is potentially unused (verified by checking the read count). This than propogates through the IR and prevents the IR from generating both the definition and global/function. The intrinsics system uses this as well to prevent intrinsic functions from being generated unless they're used.
|
2013-08-29 00:05:37 -04:00 |
|
Dale Weiler
|
ceb79f1897
|
Fix build on clang
|
2013-08-28 13:01:46 -04:00 |
|
Dale Weiler
|
3b4a5667ea
|
Constant fold intrinsics if their arguments are constant. TODO: reference count intrinsics such that they're not generated unless they're used, currently when an intrinsic can be folded-away it's marked for generation and makes it to the final output binary even though it isn't used.
|
2013-08-28 12:46:22 -04:00 |
|
Wolfgang Bumiller
|
494c30a239
|
allow initializing shadowed locals outside of -std=gmqcc - in this case it becomes a regular assignment to the old declaration which is consistent with fteqcc
|
2013-08-28 14:20:33 +02:00 |
|
Rudolf Polzer
|
e50b7a2719
|
Support vector bitor/bitand/bitxor.
Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
|
2013-08-26 18:32:28 +02:00 |
|
Dale Weiler
|
c64005966f
|
Remove some trailing whitespace
|
2013-08-17 23:43:41 +00:00 |
|
Dale Weiler
|
772dbfae26
|
Make it compile in visual studio again, without warnings.
|
2013-08-16 09:03:36 +00:00 |
|
Dale Weiler
|
a622d5163b
|
Rework some build stuff for better output and to enable strict prototypes
|
2013-08-16 03:28:02 +00:00 |
|
Dale Weiler
|
bee14a6df7
|
Some bug fixes
|
2013-08-14 07:19:49 +00:00 |
|
Dale Weiler
|
73d9aa29c4
|
Made intrinsics seperate from the parser.
|
2013-08-14 06:02:15 +00:00 |
|
Dale Weiler
|
216330a7e2
|
Some intrinsic cleanups
|
2013-08-14 03:03:49 +00:00 |
|
Dale Weiler
|
3e24b5a74b
|
Remove debugging aid and left over cruft.
|
2013-07-31 18:54:38 +00:00 |
|
Dale Weiler
|
960cb7034a
|
The problem was so subtle
|
2013-07-31 18:53:00 +00:00 |
|
Dale Weiler
|
5f2b7e3d57
|
fixed vector ops constant folding.
|
2013-07-31 17:05:43 +00:00 |
|
Dale Weiler
|
d0ee56f25f
|
more fixes
|
2013-07-31 16:31:45 +00:00 |
|
Dale Weiler
|
fa5ad1212e
|
Operator constant folding rewrite almost complete, just need to track down why two tests are failing.
|
2013-07-31 15:49:45 +00:00 |
|
Dale Weiler
|
920dbaf1e0
|
Work in progress constant-folding rewrite.
|
2013-07-31 09:04:19 +00:00 |
|
Dale Weiler
|
2c975fe48f
|
I'm in a state of confusion as to why constant folding was never done on comparisions, now it is ;)
|
2013-07-30 17:27:54 +00:00 |
|
Dale Weiler
|
d6ca5673dc
|
Use the _t consistency naming scheme. Also various cleanups.
|
2013-07-30 16:00:51 +00:00 |
|
Dale Weiler
|
c7679722fb
|
Please the whitespace gods
|
2013-07-27 11:48:55 +00:00 |
|
Dale Weiler
|
8db9724c5d
|
Revert "Smaller memory footprint, 4/8 bytes vs 12/24 for individual token lex_ctx's. Use to be a 'shallow' copy of the details in lex_file, now it's a pointer to the contents in lex_file."
This reverts commit cddf70f46b .
|
2013-07-26 16:17:41 +00:00 |
|
Dale Weiler
|
cddf70f46b
|
Smaller memory footprint, 4/8 bytes vs 12/24 for individual token lex_ctx's. Use to be a 'shallow' copy of the details in lex_file, now it's a pointer to the contents in lex_file.
|
2013-07-26 16:09:26 +00:00 |
|
Dale Weiler
|
44d5481828
|
There was too many 16-sized buckets when compiling xonotic, increase the size: this is cheaper on memory and slightly faster.
|
2013-07-26 14:50:37 +00:00 |
|
Dale Weiler
|
764b9abaf4
|
Cleanups
|
2013-07-19 11:43:22 +00:00 |
|
Wolfgang Bumiller
|
17318af62f
|
fix typo
|
2013-07-01 10:37:51 +02:00 |
|
Dale Weiler
|
063c50fce4
|
More bug fixes and dead code elimination
|
2013-06-22 01:23:59 +00:00 |
|
Dale Weiler
|
d39fb653aa
|
Fix some more bugs, and use dup2 because dup leaks on some implementations.
|
2013-06-22 01:14:13 +00:00 |
|
Dale Weiler
|
fe296de42f
|
Fix more bugs (mostly possible NULL pointer dereferences)
|
2013-06-21 23:26:49 +00:00 |
|
Dale Weiler
|
125d039e3d
|
Fix some bugs
|
2013-06-21 23:16:00 +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
|
e6c1d66c35
|
Merge branch 'master' into cooking
Conflicts:
opts.def
|
2013-06-17 20:14:26 +00:00 |
|
Dale Weiler
|
7e76b42f11
|
Merge branch 'master' of github.com:graphitemaster/gmqcc
|
2013-06-17 20:12:02 +00:00 |
|
Dale Weiler
|
23cb7f4e09
|
Fix some bugs
|
2013-06-17 20:11:37 +00:00 |
|
Wolfgang Bumiller
|
f8db5a7c6d
|
reclassify_token should only deal with tokens < TOKEN_START... should fix #113
|
2013-06-16 09:56:21 +02:00 |
|
Wolfgang Bumiller
|
e6bb7697f9
|
reclassify_token should only deal with tokens < TOKEN_START... should fix #113
|
2013-06-16 09:53:11 +02:00 |
|
Dale Weiler
|
82e92811e4
|
Uhh forgot to save file
|
2013-06-16 03:46:07 +00:00 |
|
Dale Weiler
|
9a6316221c
|
Fix memleak
|
2013-06-16 03:45:06 +00:00 |
|
Dale Weiler
|
17ae2dbe4d
|
Make ^ legal for vector ^ vector, and vector ^ float (read the huge comment that explains why and what this does). Currently only works for constants (don't know how to do expression for multiple vector components yet).
|
2013-06-16 02:17:29 +00:00 |
|
Dale Weiler
|
5694c77d16
|
I added it for a reason, because I was smart. I forgot about it because of life :(
|
2013-06-15 11:04:08 +00:00 |
|
Dale Weiler
|
0c58509417
|
This is easier
|
2013-06-15 09:53:12 +00:00 |
|
Dale Weiler
|
202fc67f93
|
Correct order
|
2013-06-15 09:52:22 +00:00 |
|
Dale Weiler
|
b9cf1f1262
|
Fix bug
|
2013-06-15 09:50:02 +00:00 |
|
Dale Weiler
|
a8fddbb7d3
|
Implemented bitwise xor operator.
|
2013-06-15 09:48:40 +00:00 |
|