Anton Balashov [Mon, 30 Sep 2013 12:43:57 +0000 (16:43 +0400)]
Fixed hyphen-used-as-minus-sign in gmqcc.1
Accortding to lintian report:
I: gmqcc: hyphen-used-as-minus-sign usr/share/man/man1/gmqcc.1.gz:156
N:
N: This manual page seems to contain a hyphen where a minus sign was
N: intended. By default, "-" chars are interpreted as hyphens (U+2010) by
N: groff, not as minus signs (U+002D). Since options to programs use minus
N: signs (U+002D), this means for example in UTF-8 locales that you cannot
N: cut and paste options, nor search for them easily. The Debian groff
N: package currently forces "-" to be interpreted as a minus sign due to
N: the number of manual pages with this problem, but this is a
N: Debian-specific modification and hopefully eventually can be removed.
N:
N: "-" must be escaped ("\-") to be interpreted as minus. If you really
N: intend a hyphen (normally you don't), write it as "\(hy" to emphasise
N: that fact. See groff(7) and especially groff_char(7) for details, and
N: also the thread starting with
N: http://lists.debian.org/debian-devel/2003/debian-devel-200303/msg01481.html
N:
N: If you use some tool that converts your documentation to groff format,
N: this tag may indicate a bug in the tool. Some tools convert dashes of
N: any kind to hyphens. The safe way of converting dashes is to convert
N: them to "\-".
N:
N: Because this error can occur very often, Lintian shows only the first 10
N: occurrences for each man page and give the number of suppressed
N: occurrences. If you want to see all warnings, run Lintian with the
N: -d/--debug option.
N:
N: Refer to /usr/share/doc/groff-base/README.Debian and the groff_char(7)
N: manual page for details.
N:
N: Severity: wishlist, Certainty: possible
N:
N: Check: manpages, Type: binary
N:
I: gmqcc: hyphen-used-as-minus-sign usr/share/man/man1/gmqcc.1.gz:354
I: gmqcc: hyphen-used-as-minus-sign usr/share/man/man1/gmqcc.1.gz:676
Dale Weiler [Thu, 29 Aug 2013 04:05:37 +0000 (00:05 -0400)]
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.
Dale Weiler [Wed, 28 Aug 2013 16:46:22 +0000 (12:46 -0400)]
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.
Wolfgang Bumiller [Wed, 28 Aug 2013 12:20:33 +0000 (14:20 +0200)]
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
Dale Weiler [Wed, 28 Aug 2013 07:40:35 +0000 (03:40 -0400)]
Handle return status from compiler, this fixes false positivies in the testsuite when the compiler segfaults and the testsuite still reports succeeded, now it won't hopefully.
Rudolf Polzer [Tue, 27 Aug 2013 07:46:58 +0000 (09:46 +0200)]
New options: -ftypeless-stores and -fsort-operands
These flags reduce entropy, but not size, of the generated assembly
code. This helps compressability of the files.
Additionally, -ftypeless-stores might SLIGHTLY improve engine
performance due to less instructions being used (so branch prediction
might work better). Probably cannot be measured though.
Signed-off-by: Rudolf Polzer <divverent@xonotic.org>
Dale Weiler [Thu, 1 Aug 2013 07:07:59 +0000 (07:07 +0000)]
Added -Oconst-fold-dce (dead code elimination optimization for when constant expressions form the basis of the dead code, i.e if else with constant expression). Fixed deps and added documentation. Cleaned up folds for ir_value (can now use the same macros as the ast_value ones).