]> git.rm.cloudns.org Git - xonotic/gmqcc.git/log
xonotic/gmqcc.git
11 years agoTiny codegen optimization: silently ignore the creation of STORE with input and outpu...
Wolfgang (Blub) Bumiller [Wed, 5 Dec 2012 14:17:11 +0000 (15:17 +0100)]
Tiny codegen optimization: silently ignore the creation of STORE with input and output being the same address

11 years agoremember this for later
Wolfgang (Blub) Bumiller [Wed, 5 Dec 2012 14:14:21 +0000 (15:14 +0100)]
remember this for later

11 years agoMore stuff in qcvm -printfuns
Wolfgang (Blub) Bumiller [Wed, 5 Dec 2012 13:22:24 +0000 (14:22 +0100)]
More stuff in qcvm -printfuns

11 years agoir_function_pass_minor: some minor optimizations
Wolfgang (Blub) Bumiller [Wed, 5 Dec 2012 13:14:35 +0000 (14:14 +0100)]
ir_function_pass_minor: some minor optimizations

11 years agoast_block_add_expr now lets the block fully adopt the type of the added expression
Wolfgang (Blub) Bumiller [Wed, 5 Dec 2012 11:57:00 +0000 (12:57 +0100)]
ast_block_add_expr now lets the block fully adopt the type of the added expression

11 years agos/parser_sy_pop/parser_sy_apply_operator/
Wolfgang (Blub) Bumiller [Tue, 4 Dec 2012 20:04:14 +0000 (21:04 +0100)]
s/parser_sy_pop/parser_sy_apply_operator/

11 years agoast_ternary_codegen: use codegen_outpu_type
Wolfgang (Blub) Bumiller [Tue, 4 Dec 2012 13:11:49 +0000 (14:11 +0100)]
ast_ternary_codegen: use codegen_outpu_type

11 years agoFix testsuite for -compile cases
Dale Weiler [Tue, 4 Dec 2012 11:55:56 +0000 (11:55 +0000)]
Fix testsuite for -compile cases

11 years ago-Werror now changes the word 'warning' into 'error'
Wolfgang (Blub) Bumiller [Tue, 4 Dec 2012 11:54:53 +0000 (12:54 +0100)]
-Werror now changes the word 'warning' into 'error'

11 years agonoref -compile testcase
Wolfgang (Blub) Bumiller [Tue, 4 Dec 2012 11:50:38 +0000 (12:50 +0100)]
noref -compile testcase

11 years agoParsing the 'noref' keyword; this also gets rid of some code duplication
Wolfgang (Blub) Bumiller [Tue, 4 Dec 2012 11:12:45 +0000 (12:12 +0100)]
Parsing the 'noref' keyword; this also gets rid of some code duplication

11 years agoParsing noref-pragma
Wolfgang (Blub) Bumiller [Mon, 3 Dec 2012 19:37:02 +0000 (20:37 +0100)]
Parsing noref-pragma

11 years agoftepp_preprocess_string uses strlen - push nul-byte to verminor and vermajor
Wolfgang (Blub) Bumiller [Mon, 3 Dec 2012 19:23:40 +0000 (20:23 +0100)]
ftepp_preprocess_string uses strlen - push nul-byte to verminor and vermajor

11 years agoHide execution call to testsuite with @ in Makefile
Dale Weiler [Sun, 2 Dec 2012 23:58:13 +0000 (23:58 +0000)]
Hide execution call to testsuite with @ in Makefile

11 years ago-g now turns on -flno
Dale Weiler [Sun, 2 Dec 2012 23:52:38 +0000 (23:52 +0000)]
-g now turns on -flno

11 years agoMerge branch 'master' of github.com:graphitemaster/gmqcc
Dale Weiler [Sun, 2 Dec 2012 23:17:07 +0000 (23:17 +0000)]
Merge branch 'master' of github.com:graphitemaster/gmqcc

11 years agoAdded preprocessor test
Dale Weiler [Sun, 2 Dec 2012 23:16:44 +0000 (23:16 +0000)]
Added preprocessor test

11 years agoDon't warn about uninitialized stuff in accessors - remove the liferanges calculated...
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 17:09:59 +0000 (18:09 +0100)]
Don't warn about uninitialized stuff in accessors - remove the liferanges calculated when finalizing accessors, this would add invalid liferanges to function-local arrays and thus suppress warnings randomly

11 years agoSanity check in ast_generate_accessors
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 17:02:44 +0000 (18:02 +0100)]
Sanity check in ast_generate_accessors

11 years agoGet rid of some code duplication
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 16:57:08 +0000 (17:57 +0100)]
Get rid of some code duplication

11 years agoMerge branch 'master' of github.com:graphitemaster/gmqcc
Dale Weiler [Sun, 2 Dec 2012 12:03:40 +0000 (12:03 +0000)]
Merge branch 'master' of github.com:graphitemaster/gmqcc

11 years agoCopy the real test output to ternary-fte.tmpl
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 12:03:20 +0000 (13:03 +0100)]
Copy the real test output to ternary-fte.tmpl

11 years agoAdd whitespace to ternary-fte template so it matches (expected behaviour)
Dale Weiler [Sun, 2 Dec 2012 12:03:02 +0000 (12:03 +0000)]
Add whitespace to ternary-fte template so it matches (expected behaviour)

11 years agoFixes
Dale Weiler [Sun, 2 Dec 2012 12:01:36 +0000 (12:01 +0000)]
Fixes

11 years agoMerge branch 'master' of github.com:graphitemaster/gmqcc
Dale Weiler [Sun, 2 Dec 2012 11:21:31 +0000 (11:21 +0000)]
Merge branch 'master' of github.com:graphitemaster/gmqcc

11 years agoImproved testsuite diagnostics
Dale Weiler [Sun, 2 Dec 2012 11:21:01 +0000 (11:21 +0000)]
Improved testsuite diagnostics

11 years agoRemove an unused variable qc_stof
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 10:58:15 +0000 (11:58 +0100)]
Remove an unused variable qc_stof

11 years agoFix testsuite
Dale Weiler [Sun, 2 Dec 2012 10:57:04 +0000 (10:57 +0000)]
Fix testsuite

11 years agoFix ternary operator entry for -std=gmqcc
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 10:56:20 +0000 (11:56 +0100)]
Fix ternary operator entry for -std=gmqcc

11 years agoUpdating ternary testcase to use -fcorrect-ternary - added fte-style test as well...
Wolfgang (Blub) Bumiller [Sun, 2 Dec 2012 10:52:11 +0000 (11:52 +0100)]
Updating ternary testcase to use -fcorrect-ternary - added fte-style test as well for it

11 years agoadded __STD_VERSION_[MINOR/MAJOR]__, and vec_upload
Dale Weiler [Sun, 2 Dec 2012 04:30:46 +0000 (04:30 +0000)]
added __STD_VERSION_[MINOR/MAJOR]__, and vec_upload

11 years agoFix a type size bug: non-var locals overlapped with var locals, that was bad
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 22:23:00 +0000 (23:23 +0100)]
Fix a type size bug: non-var locals overlapped with var locals, that was bad

11 years agoRemove unused omit-nullbytes code in code.c
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 22:14:52 +0000 (23:14 +0100)]
Remove unused omit-nullbytes code in code.c

11 years agoRemoved -fomit-null-bytes
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 20:19:33 +0000 (21:19 +0100)]
Removed -fomit-null-bytes

11 years agoSome of the output types were superfluous; others are now put into a function to...
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 15:39:29 +0000 (16:39 +0100)]
Some of the output types were superfluous; others are now put into a function to take care of it

11 years agoAdd some more output and field types so you can now properly call 'get_a_function_whi...
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 15:11:04 +0000 (16:11 +0100)]
Add some more output and field types so you can now properly call 'get_a_function_which_gives_a_function()()()' without return values getting lost

11 years agostof builtin #9
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 14:54:13 +0000 (15:54 +0100)]
stof builtin #9

11 years agofunction pointer's output types need to be set for the IR to know
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 14:23:40 +0000 (15:23 +0100)]
function pointer's output types need to be set for the IR to know

11 years agoMore info in qcvm -printfuns
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 14:23:04 +0000 (15:23 +0100)]
More info in qcvm -printfuns

11 years ago-fcorrect-ternary; by default -std=fteqcc now uses fteqcc's wrong ternary precedence...
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 12:42:16 +0000 (13:42 +0100)]
-fcorrect-ternary; by default -std=fteqcc now uses fteqcc's wrong ternary precedence parsing

11 years agoSanity check for -Wternary-precedence
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 11:36:54 +0000 (12:36 +0100)]
Sanity check for -Wternary-precedence

11 years ago-Wternary-precedence; *sight* this is tough
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 11:35:46 +0000 (12:35 +0100)]
-Wternary-precedence; *sight* this is tough

11 years agoGenerate extparams on calls too since the to-be-called function needs not be generate...
Wolfgang (Blub) Bumiller [Sat, 1 Dec 2012 10:43:54 +0000 (11:43 +0100)]
Generate extparams on calls too since the to-be-called function needs not be generated first after all

11 years agoMore ternary fixes
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 23:50:04 +0000 (00:50 +0100)]
More ternary fixes

11 years agoOffsetting builtins so we can use 'if builtin!=0' as condition but also allow a ...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 23:36:24 +0000 (00:36 +0100)]
Offsetting builtins so we can use 'if builtin!=0' as condition but also allow a '#0' builtin

11 years agoUpping the default max-array-limit *sigh*
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 23:34:18 +0000 (00:34 +0100)]
Upping the default max-array-limit *sigh*

11 years agoand 'const' is a keyword, not an ident
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 23:33:07 +0000 (00:33 +0100)]
and 'const' is a keyword, not an ident

11 years agovar const / const var - both need to be allowed
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 23:32:18 +0000 (00:32 +0100)]
var const / const var - both need to be allowed

11 years agosome SYA fix; adding optional variable parsing to the head of a switch block
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 23:31:00 +0000 (00:31 +0100)]
some SYA fix; adding optional variable parsing to the head of a switch block

11 years agoskipwhite bugfix
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:51:18 +0000 (21:51 +0100)]
skipwhite bugfix

11 years agobodyless loops still have to loop
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:34:49 +0000 (21:34 +0100)]
bodyless loops still have to loop

11 years agochanging parse_statement_or_block to return a bool and put the output block into...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:31:19 +0000 (21:31 +0100)]
changing parse_statement_or_block to return a bool and put the output block into a pointer, so that NULL can still be possible

11 years agoapparently #0 is a valid builtin number, used for some NULL funcs
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:25:18 +0000 (21:25 +0100)]
apparently #0 is a valid builtin number, used for some NULL funcs

11 years agoprepare fields before generating globals so we avoid the need for relocating initiali...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:22:48 +0000 (21:22 +0100)]
prepare fields before generating globals so we avoid the need for relocating initialized fieldpointers

11 years agofield constants - revert globals generated after fields
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:11:12 +0000 (21:11 +0100)]
field constants - revert globals generated after fields

11 years agoremember if an ast_value is a field-declaration, build fields before globals
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 20:03:57 +0000 (21:03 +0100)]
remember if an ast_value is a field-declaration, build fields before globals

11 years agoadditional info in an internal error
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 19:40:48 +0000 (20:40 +0100)]
additional info in an internal error

11 years agoUse the field parameter type on the raw paramter type list for their sizes.
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 19:33:40 +0000 (20:33 +0100)]
Use the field parameter type on the raw paramter type list for their sizes.

11 years agoqcvm -printfuns; prog_section_function.nargs is now signed as fteqcc sets builtins...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 19:20:13 +0000 (20:20 +0100)]
qcvm -printfuns; prog_section_function.nargs is now signed as fteqcc sets builtins with varargs to have -1 params

11 years agoAdding opts.def as dep to everything which has gmqcc.h as dep
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 17:21:14 +0000 (18:21 +0100)]
Adding opts.def as dep to everything which has gmqcc.h as dep

11 years agoAll ir_instrs now get their lex-context, so that we can create an LNO file with ...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 17:19:26 +0000 (18:19 +0100)]
All ir_instrs now get their lex-context, so that we can create an LNO file with -flno

11 years agoincrease the ridiculously low size limit on lex-pragma parameters
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 16:28:46 +0000 (17:28 +0100)]
increase the ridiculously low size limit on lex-pragma parameters

11 years agoupdate other value/const check for array indexing
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 15:28:09 +0000 (16:28 +0100)]
update other value/const check for array indexing

11 years agoDon't treat initialized non-consts as static array indices
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 15:25:18 +0000 (16:25 +0100)]
Don't treat initialized non-consts as static array indices

11 years agoKeeping track of numbers for debugging
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 15:23:42 +0000 (16:23 +0100)]
Keeping track of numbers for debugging

11 years agoout-of-bounds indexing check on static array indexing
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 15:23:34 +0000 (16:23 +0100)]
out-of-bounds indexing check on static array indexing

11 years agoWe can now reintroduce the 'preprocessor-directives only after newlines' rule correctly
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:53:53 +0000 (15:53 +0100)]
We can now reintroduce the 'preprocessor-directives only after newlines' rule correctly

11 years agoIgnore modelgen commands with lex->flags.preprocessing
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:44:45 +0000 (15:44 +0100)]
Ignore modelgen commands with lex->flags.preprocessing

11 years agoWrong condition *sigh*
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:43:18 +0000 (15:43 +0100)]
Wrong condition *sigh*

11 years agoStill have to parse ahead though
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:41:01 +0000 (15:41 +0100)]
Still have to parse ahead though

11 years agoDon't expand macros inside #if 0 at _all_
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:40:19 +0000 (15:40 +0100)]
Don't expand macros inside #if 0 at _all_

11 years agoDon't produce 'unknown token' errors in preprocessing mode
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:38:03 +0000 (15:38 +0100)]
Don't produce 'unknown token' errors in preprocessing mode

11 years agoDon't try to add a slash to actual filenames, only paths...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:26:14 +0000 (15:26 +0100)]
Don't try to add a slash to actual filenames, only paths...

11 years agoDon't try to compile an empty output from the preprocessor
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 14:20:23 +0000 (15:20 +0100)]
Don't try to compile an empty output from the preprocessor

11 years agoremove array-field without parens warning since it seems to not be broken in fteqcc...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:47:55 +0000 (14:47 +0100)]
remove array-field without parens warning since it seems to not be broken in fteqcc anymore

11 years agoFix indentation of compile_warning
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:46:56 +0000 (14:46 +0100)]
Fix indentation of compile_warning

11 years agolex_ctx of a return will be at the return keyword now
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:42:18 +0000 (14:42 +0100)]
lex_ctx of a return will be at the return keyword now

11 years agorevert 1 of the error messages
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:37:54 +0000 (14:37 +0100)]
revert 1 of the error messages

11 years agoKeep track of the beginning of a block
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:37:23 +0000 (14:37 +0100)]
Keep track of the beginning of a block

11 years agomark vectors as used when their members are used
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:30:25 +0000 (14:30 +0100)]
mark vectors as used when their members are used

11 years agofteqcc's \{number\} string control sequences
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:22:00 +0000 (14:22 +0100)]
fteqcc's \{number\} string control sequences

11 years agofteqcc like \[ and \] in strings
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:18:45 +0000 (14:18 +0100)]
fteqcc like \[ and \] in strings

11 years agolexer: hex sequences with \x and fteqcc-specific handling if one-digit sequences...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:18:15 +0000 (14:18 +0100)]
lexer: hex sequences with \x and fteqcc-specific handling if one-digit sequences and <, -, and > sequences

11 years agoSet the full const/var qualifier; only generate warnings about unimplemented function...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:05:25 +0000 (14:05 +0100)]
Set the full const/var qualifier; only generate warnings about unimplemented functions if they have no qualifier at all

11 years agodon't just store a 'bool constant' in the ast/ir, store the complete qualifier: ...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 12:47:28 +0000 (13:47 +0100)]
don't just store a 'bool constant' in the ast/ir, store the complete qualifier: 'int cvq', moved CV_ defines into gmqcc.h

11 years agoRemove the 'warnreturn' parameter in some parser functions
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:37:46 +0000 (12:37 +0100)]
Remove the 'warnreturn' parameter in some parser functions

11 years agoActually generate the missing return instruction
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:35:33 +0000 (12:35 +0100)]
Actually generate the missing return instruction

11 years agoast_loop with no condition and no incrementor are 'for(;;)' and need to loop endlessl...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:28:51 +0000 (12:28 +0100)]
ast_loop with no condition and no incrementor are 'for(;;)' and need to loop endlessly instead of once...

11 years agoStill need to generate the jump...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:23:27 +0000 (12:23 +0100)]
Still need to generate the jump...

11 years agoast_ifthen will not create dead blocks anymore
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:21:10 +0000 (12:21 +0100)]
ast_ifthen will not create dead blocks anymore

11 years agoactually removing -Wmissing-return-values from parser.c and enabling the ast code...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:11:36 +0000 (12:11 +0100)]
actually removing -Wmissing-return-values from parser.c and enabling the ast code for it

11 years agoFix a wrong vec_remove in the tailcall pass
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:59:03 +0000 (11:59 +0100)]
Fix a wrong vec_remove in the tailcall pass

11 years agodon't use vec_size but _vec_end in _vec_remove, since using it on an empty vector...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:55:32 +0000 (11:55 +0100)]
don't use vec_size but _vec_end in _vec_remove, since using it on an empty vector is an error anyway; this causes a warning about vec_pop doing an effect-less memmove so vec_pop now doesn't use vec_remove anymore actually

11 years agoprint the number of performed optimizations after compiling
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:47:35 +0000 (11:47 +0100)]
print the number of performed optimizations after compiling

11 years agoAlso print the numeric -O flag which would enable an optimization when listing optimi...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:15:57 +0000 (11:15 +0100)]
Also print the numeric -O flag which would enable an optimization when listing optimizations via -Ohelp

11 years agoImporting tail-recursion optimization
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:12:53 +0000 (11:12 +0100)]
Importing tail-recursion optimization

11 years ago-O now, additionally to taking a number, can work like -W and -f to take an actual...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:05:58 +0000 (11:05 +0100)]
-O now, additionally to taking a number, can work like -W and -f to take an actual optimization name

11 years agomoving opts_warn and opts_werror to con.c
Wolfgang (Blub) Bumiller [Wed, 28 Nov 2012 18:18:11 +0000 (19:18 +0100)]
moving opts_warn and opts_werror to con.c

11 years agoqcvm didn't compile since moving the compile messages to con.c due to undefined refer...
Wolfgang (Blub) Bumiller [Wed, 28 Nov 2012 18:16:35 +0000 (19:16 +0100)]
qcvm didn't compile since moving the compile messages to con.c due to undefined references - fixed now

11 years agogeneric compile_error/compile_warning functions in con.c, issuing end-of-non-void...
Wolfgang (Blub) Bumiller [Mon, 26 Nov 2012 15:12:40 +0000 (16:12 +0100)]
generic compile_error/compile_warning functions in con.c, issuing end-of-non-void warning from within the ast now