cparser
12 years agoRemove unnecessary assertion.
Christoph Mallon [Tue, 17 Apr 2012 10:28:20 +0000 (12:28 +0200)]
Remove unnecessary assertion.

A subsequent assertion checks more.

12 years agoUse fold_constant_to_tarval() instead of reimplementing it badly, i.e. failing with...
Christoph Mallon [Tue, 17 Apr 2012 10:12:36 +0000 (12:12 +0200)]
Use fold_constant_to_tarval() instead of reimplementing it badly, i.e. failing with -O0.

12 years agoUse create_Const_from_bool() instead of duplicating it.
Christoph Mallon [Tue, 17 Apr 2012 09:23:17 +0000 (11:23 +0200)]
Use create_Const_from_bool() instead of duplicating it.

12 years agoMove a case, which unnecessarily was an explicit if, into the following switch.
Christoph Mallon [Tue, 17 Apr 2012 09:18:45 +0000 (11:18 +0200)]
Move a case, which unnecessarily was an explicit if, into the following switch.

12 years agoReformat statement_to_firm() for better readability.
Christoph Mallon [Tue, 17 Apr 2012 08:51:22 +0000 (10:51 +0200)]
Reformat statement_to_firm() for better readability.

12 years agoUse create_jump_statement() to construct IR for goto statements.
Christoph Mallon [Tue, 17 Apr 2012 08:46:15 +0000 (10:46 +0200)]
Use create_jump_statement() to construct IR for goto statements.

12 years agoRemove anchors only when they were added before.
Christoph Mallon [Tue, 17 Apr 2012 08:42:00 +0000 (10:42 +0200)]
Remove anchors only when they were added before.

12 years agoCorrect expression_to_firm() for compound literals.
Christoph Mallon [Thu, 12 Apr 2012 11:44:14 +0000 (13:44 +0200)]
Correct expression_to_firm() for compound literals.

12 years agoCorrect the ir_relation used for implicit comparisons with 0.
Christoph Mallon [Wed, 11 Apr 2012 08:02:33 +0000 (10:02 +0200)]
Correct the ir_relation used for implicit comparisons with 0.

For floats checking for unordered is necessary.

12 years agoSimplify if_statement_to_firm() so it in particular does not create a critical edge...
Christoph Mallon [Tue, 10 Apr 2012 13:39:12 +0000 (15:39 +0200)]
Simplify if_statement_to_firm() so it in particular does not create a critical edge, if there is no else part.

- The then part is constructed before the else part now.
- No explicit block after the if statement is created if the then or else parts do not jump there.

12 years agoSet the correct length for literal suffixes, i.e. do not count the terminating NUL.
Christoph Mallon [Thu, 29 Mar 2012 16:22:07 +0000 (18:22 +0200)]
Set the correct length for literal suffixes, i.e. do not count the terminating NUL.

12 years agoSplit computed gotos (STATEMENT_COMPUTED_GOTO) from normal goto statements.
Christoph Mallon [Wed, 28 Mar 2012 11:39:12 +0000 (13:39 +0200)]
Split computed gotos (STATEMENT_COMPUTED_GOTO) from normal goto statements.

12 years agoFix: Walk the expression of computed goto statements, too.
Christoph Mallon [Wed, 28 Mar 2012 12:45:43 +0000 (14:45 +0200)]
Fix: Walk the expression of computed goto statements, too.

12 years agoReformat switches for better readability.
Christoph Mallon [Wed, 28 Mar 2012 13:07:32 +0000 (15:07 +0200)]
Reformat switches for better readability.

12 years agoMake our multi-case macros nicer for code beautifiers.
Christoph Mallon [Wed, 28 Mar 2012 13:19:23 +0000 (15:19 +0200)]
Make our multi-case macros nicer for code beautifiers.

12 years agoAdd EXPR_ERROR to the precedence list.
Christoph Mallon [Wed, 28 Mar 2012 13:53:51 +0000 (15:53 +0200)]
Add EXPR_ERROR to the precedence list.

12 years agoSimplify printing the seperator (", ") between call arguments.
Christoph Mallon [Tue, 27 Mar 2012 11:32:54 +0000 (13:32 +0200)]
Simplify printing the seperator (", ") between call arguments.

12 years agoUse for () where it is better suited than while ().
Christoph Mallon [Tue, 27 Mar 2012 11:29:37 +0000 (13:29 +0200)]
Use for () where it is better suited than while ().

12 years agoUse print_char('x') instead of print_string("x").
Christoph Mallon [Tue, 27 Mar 2012 11:27:36 +0000 (13:27 +0200)]
Use print_char('x') instead of print_string("x").

12 years agoImprove printing after an inner statement.
Christoph Mallon [Tue, 27 Mar 2012 11:23:35 +0000 (13:23 +0200)]
Improve printing after an inner statement.

Now we print
  if (x) {
  } else {
  }
instead of
  if (x) {
  }
  else {
  }

12 years agoEnsure that case labels are always printed with the same indentation as their switch.
Christoph Mallon [Tue, 27 Mar 2012 11:09:09 +0000 (13:09 +0200)]
Ensure that case labels are always printed with the same indentation as their switch.

Now we print
  switch (x) {
  case 0:
   if (y) {
  case 1:
   f();
   }
  }
instead of
  switch (x) {
  case 0:
   if (y) {
   case 1:
   f();
   }
  }

12 years agoHandle printing of inner statements systematically and correct/improve the output.
Christoph Mallon [Tue, 27 Mar 2012 08:54:50 +0000 (10:54 +0200)]
Handle printing of inner statements systematically and correct/improve the output.

- Now we print
    if (x)
     f();
    else
     g();
  instead of
    if (x) f();
    else g();

- If cascades are still printed as
    if (x) {
    } else if (y) {
    }

- This corrects indendation when {case,default,goto} labels are inner statements.

12 years agoHandle printing of indentation before statements more systematically and reduce code...
Christoph Mallon [Tue, 27 Mar 2012 08:38:21 +0000 (10:38 +0200)]
Handle printing of indentation before statements more systematically and reduce code duplication.

This corrects the indentation if case labels and goto labels are interspersed or if there are consecutive goto labels.

12 years agoLet the callers of print_statement() handle printing a newline at the end.
Christoph Mallon [Tue, 27 Mar 2012 07:46:43 +0000 (09:46 +0200)]
Let the callers of print_statement() handle printing a newline at the end.

12 years agoRemove pointless null pointer check.
Christoph Mallon [Tue, 27 Mar 2012 07:02:03 +0000 (09:02 +0200)]
Remove pointless null pointer check.

Case label statements always have an inner statement.

12 years agoignore config.mak
Matthias Braun [Mon, 12 Mar 2012 11:48:03 +0000 (12:48 +0100)]
ignore config.mak

12 years agofix -O0 still performing local optimizations
Matthias Braun [Thu, 1 Mar 2012 14:49:11 +0000 (15:49 +0100)]
fix -O0 still performing local optimizations

12 years agoupdate libfirm version
Matthias Braun [Wed, 29 Feb 2012 13:17:09 +0000 (14:17 +0100)]
update libfirm version

12 years agoignore -msse2
Matthias Braun [Wed, 29 Feb 2012 13:16:59 +0000 (14:16 +0100)]
ignore -msse2

12 years agorework os classification
Matthias Braun [Wed, 29 Feb 2012 13:16:46 +0000 (14:16 +0100)]
rework os classification

12 years agoignore TARGET environment variable (Makefiles tend to set that and confuse cparser)
Matthias Braun [Wed, 29 Feb 2012 13:16:04 +0000 (14:16 +0100)]
ignore TARGET environment variable (Makefiles tend to set that and confuse cparser)

12 years agoupdate libfirm reference (so new builtins actually work)
Matthias Braun [Fri, 17 Feb 2012 16:03:22 +0000 (17:03 +0100)]
update libfirm reference (so new builtins actually work)

12 years agoimplement more builtins
Matthias Braun [Fri, 17 Feb 2012 16:00:51 +0000 (17:00 +0100)]
implement more builtins

(bswap, fabs)

12 years agodarwin name in target tripple may contain version
Matthias Braun [Tue, 14 Feb 2012 10:22:05 +0000 (11:22 +0100)]
darwin name in target tripple may contain version

12 years agoupdate libfirm reference
Matthias Braun [Fri, 10 Feb 2012 15:53:01 +0000 (16:53 +0100)]
update libfirm reference

12 years agoupdate for new release
Matthias Braun [Wed, 7 Dec 2011 18:00:22 +0000 (19:00 +0100)]
update for new release

12 years agodisable download from internet in makefile for now
Matthias Braun [Tue, 20 Dec 2011 13:41:17 +0000 (14:41 +0100)]
disable download from internet in makefile for now

12 years agoimplement -dumpversion for gcc compatibility
Matthias Braun [Tue, 20 Dec 2011 13:35:02 +0000 (14:35 +0100)]
implement -dumpversion for gcc compatibility

12 years agofix --help display
Matthias Braun [Tue, 20 Dec 2011 13:34:51 +0000 (14:34 +0100)]
fix --help display

12 years agoFixed wrong enum type.
Sebastian Buchwald [Wed, 21 Dec 2011 13:20:43 +0000 (14:20 +0100)]
Fixed wrong enum type.

12 years agomaturing start and end block isn't necessary anymore with latest libfirm
Matthias Braun [Mon, 19 Dec 2011 09:57:08 +0000 (10:57 +0100)]
maturing start and end block isn't necessary anymore with latest libfirm

12 years agodo not use ir_.*_ptr types
Matthias Braun [Mon, 12 Dec 2011 15:18:24 +0000 (16:18 +0100)]
do not use ir_.*_ptr types

12 years agoDo not link on every make invocation
Andreas Zwinkau [Mon, 19 Dec 2011 14:45:50 +0000 (15:45 +0100)]
Do not link on every make invocation

Previously, ld had to be called, because the static libfirm might have
been updated.

Note the little hack, which apparently makes GNU Make re-evaluated the
Makefile, whenever the phony libfirm_subdir goal has been executed:

> Makefile: libfirm_subdir

12 years agofix noreturn attribute
Matthias Braun [Thu, 8 Dec 2011 17:39:49 +0000 (18:39 +0100)]
fix noreturn attribute

12 years agoignore gcc --unroll-loops
Matthias Braun [Wed, 7 Dec 2011 17:54:57 +0000 (18:54 +0100)]
ignore gcc --unroll-loops

12 years agoupdate NEWS, README
Matthias Braun [Wed, 7 Dec 2011 17:54:47 +0000 (18:54 +0100)]
update NEWS, README

12 years agofix warnings
Matthias Braun [Mon, 28 Nov 2011 17:44:16 +0000 (18:44 +0100)]
fix warnings

12 years agocompound literals are linker_constants
Matthias Braun [Thu, 24 Nov 2011 20:13:20 +0000 (21:13 +0100)]
compound literals are linker_constants

12 years agofix non-scalar type initializers
Matthias Braun [Thu, 24 Nov 2011 20:13:05 +0000 (21:13 +0100)]
fix non-scalar type initializers

12 years agocreate constant initializers as entities in data segment
Matthias Braun [Thu, 24 Nov 2011 20:00:02 +0000 (21:00 +0100)]
create constant initializers as entities in data segment

12 years agocleanup driver interface a bit
Matthias Braun [Fri, 18 Nov 2011 16:16:29 +0000 (17:16 +0100)]
cleanup driver interface a bit

12 years agothe frontend shouldn't care about the inliner
Matthias Braun [Thu, 17 Nov 2011 16:33:46 +0000 (17:33 +0100)]
the frontend shouldn't care about the inliner

12 years agoalways put a mode into assembler constraints
Matthias Braun [Thu, 17 Nov 2011 16:33:39 +0000 (17:33 +0100)]
always put a mode into assembler constraints

12 years agouse ir_export_file so we can also export to stdout
Matthias Braun [Thu, 17 Nov 2011 16:33:03 +0000 (17:33 +0100)]
use ir_export_file so we can also export to stdout

12 years agodo not continue if program import failed
Matthias Braun [Wed, 16 Nov 2011 17:44:43 +0000 (18:44 +0100)]
do not continue if program import failed

12 years agoadapt to latest libfirm
Matthias Braun [Thu, 10 Nov 2011 14:37:23 +0000 (15:37 +0100)]
adapt to latest libfirm

12 years agoremove $Id$, it does not work with git anyway
Matthias Braun [Thu, 10 Nov 2011 13:24:59 +0000 (14:24 +0100)]
remove $Id$, it does not work with git anyway

12 years agofix indentation
Matthias Braun [Thu, 10 Nov 2011 13:22:39 +0000 (14:22 +0100)]
fix indentation

12 years agoremove unused fourcc.h
Matthias Braun [Thu, 10 Nov 2011 13:22:20 +0000 (14:22 +0100)]
remove unused fourcc.h

12 years agoremove unused adt/align.h
Matthias Braun [Thu, 10 Nov 2011 13:21:46 +0000 (14:21 +0100)]
remove unused adt/align.h

12 years agolibfirm doesn't allow Conv Is(xx b) anymore
Matthias Braun [Mon, 7 Nov 2011 12:34:28 +0000 (13:34 +0100)]
libfirm doesn't allow Conv Is(xx b) anymore

12 years agoUse new libFirm version with localopts phase
Andreas Zwinkau [Fri, 4 Nov 2011 14:25:46 +0000 (15:25 +0100)]
Use new libFirm version with localopts phase

12 years agoupdate to a less broken libfirm revision
Matthias Braun [Thu, 3 Nov 2011 17:45:48 +0000 (18:45 +0100)]
update to a less broken libfirm revision

12 years agofix wrong type of case statements
Matthias Braun [Thu, 3 Nov 2011 16:45:09 +0000 (17:45 +0100)]
fix wrong type of case statements

§6.8.4.2:3 The expression of each case label shall be an integer
           constant expression
§6.8.4.2:5 The constant expression in each case label is converted to the
           promoted type of the controlling expression.

12 years agoadapt to new Switch node
Matthias Braun [Wed, 2 Nov 2011 18:00:56 +0000 (19:00 +0100)]
adapt to new Switch node

12 years agoadapt to pn_Builtin_1_result removal
Matthias Braun [Wed, 2 Nov 2011 18:00:45 +0000 (19:00 +0100)]
adapt to pn_Builtin_1_result removal

12 years agolinker flags to the end
Andreas Zwinkau [Fri, 28 Oct 2011 20:09:13 +0000 (22:09 +0200)]
linker flags to the end

12 years agoadapt to firm ir_mode changes
Matthias Braun [Tue, 25 Oct 2011 12:53:37 +0000 (14:53 +0200)]
adapt to firm ir_mode changes

12 years agoast2firm: do not load from incomplete typed objects
Matthias Braun [Tue, 25 Oct 2011 10:53:18 +0000 (12:53 +0200)]
ast2firm: do not load from incomplete typed objects

12 years agosizeof(void) is 1
Matthias Braun [Tue, 25 Oct 2011 10:55:44 +0000 (12:55 +0200)]
sizeof(void) is 1

This only matters when GNU mode is enabled, but then you can perform
pointer arithmetic with void in which case its size should also be 1

12 years agoDisplay libfirm revision on --version
Andreas Zwinkau [Wed, 26 Oct 2011 13:52:17 +0000 (15:52 +0200)]
Display libfirm revision on --version

12 years agoUpdate libfirm submodule reference
Andreas Zwinkau [Tue, 25 Oct 2011 13:47:04 +0000 (15:47 +0200)]
Update libfirm submodule reference

12 years agorepair prepare_main_collect2 hack
Matthias Braun [Thu, 20 Oct 2011 12:58:06 +0000 (14:58 +0200)]
repair prepare_main_collect2 hack

12 years agofix typo on systems with unsigned short as wchar_t
Matthias Braun [Thu, 20 Oct 2011 12:28:36 +0000 (14:28 +0200)]
fix typo on systems with unsigned short as wchar_t

12 years agoupdate submodule reference
Matthias Braun [Wed, 19 Oct 2011 19:47:11 +0000 (21:47 +0200)]
update submodule reference

12 years agoall sources are dependent on config.h
Matthias Braun [Wed, 19 Oct 2011 19:33:14 +0000 (21:33 +0200)]
all sources are dependent on config.h

12 years agouse a better url for the libfirm submodule
Matthias Braun [Wed, 19 Oct 2011 19:32:59 +0000 (21:32 +0200)]
use a better url for the libfirm submodule

12 years agoUpdate libfirm submodule reference
Andreas Zwinkau [Wed, 19 Oct 2011 14:39:15 +0000 (16:39 +0200)]
Update libfirm submodule reference

12 years agovalues resulting from a bitfield store need to be sign extended
Matthias Braun [Fri, 14 Oct 2011 11:03:47 +0000 (13:03 +0200)]
values resulting from a bitfield store need to be sign extended

This should fix testsuite/C/cp_error069.c

12 years agosplit enum type construction and value computation
Matthias Braun [Thu, 13 Oct 2011 12:25:39 +0000 (14:25 +0200)]
split enum type construction and value computation

This fixes testsuite/C/cp_error068.c

12 years agopass -ansi flag to preprocessor
Matthias Braun [Tue, 27 Sep 2011 15:13:10 +0000 (17:13 +0200)]
pass -ansi flag to preprocessor

12 years agoRemove stale and strange entries from .gitignore.
Christoph Mallon [Tue, 11 Oct 2011 08:31:33 +0000 (10:31 +0200)]
Remove stale and strange entries from .gitignore.

12 years agoConsistently use $(BUILDDIR) instead of build.
Christoph Mallon [Tue, 11 Oct 2011 08:20:41 +0000 (10:20 +0200)]
Consistently use $(BUILDDIR) instead of build.

12 years agocparser.bootstrap2 depends on cparser.bootstrap.
Christoph Mallon [Tue, 11 Oct 2011 08:16:40 +0000 (10:16 +0200)]
cparser.bootstrap2 depends on cparser.bootstrap.

12 years agoRemove dubious/unnecessary dependencies.
Christoph Mallon [Tue, 11 Oct 2011 08:16:13 +0000 (10:16 +0200)]
Remove dubious/unnecessary dependencies.

12 years agoList all phony targets in .PHONY.
Christoph Mallon [Tue, 11 Oct 2011 08:15:25 +0000 (10:15 +0200)]
List all phony targets in .PHONY.

12 years agoUse $(CC) -MMD instead of makedepend for tracking header dependencies.
Christoph Mallon [Tue, 11 Oct 2011 08:12:28 +0000 (10:12 +0200)]
Use $(CC) -MMD instead of makedepend for tracking header dependencies.

makedepend might not be available.

12 years agoCreate build directories more systematically.
Christoph Mallon [Tue, 11 Oct 2011 08:02:09 +0000 (10:02 +0200)]
Create build directories more systematically.

In particular this corrects one typo: cpbe2 should be cpbe.

12 years agoProperly update revision.h.
Christoph Mallon [Tue, 11 Oct 2011 07:51:34 +0000 (09:51 +0200)]
Properly update revision.h.

revision.h was not updated anymore once it existed.

12 years agoRemove stale comment.
Christoph Mallon [Tue, 11 Oct 2011 06:39:56 +0000 (08:39 +0200)]
Remove stale comment.

12 years agoReport an error if a struct contains only a flexible array member.
Christoph Mallon [Mon, 10 Oct 2011 12:33:25 +0000 (14:33 +0200)]
Report an error if a struct contains only a flexible array member.

12 years agoUse $(FIRM_HOME) instead of hardcoding libfirm. Also do not unconditionally show...
Christoph Mallon [Mon, 10 Oct 2011 10:59:46 +0000 (12:59 +0200)]
Use $(FIRM_HOME) instead of hardcoding libfirm. Also do not unconditionally show the sub-make command.

12 years agoBuild the debug version with -O0, not -O2.
Christoph Mallon [Mon, 10 Oct 2011 07:09:14 +0000 (09:09 +0200)]
Build the debug version with -O0, not -O2.

12 years agoAdapt CFLAGS according to variant
Andreas Zwinkau [Fri, 30 Sep 2011 12:20:50 +0000 (14:20 +0200)]
Adapt CFLAGS according to variant

12 years agoUpdate libfirm submodule reference
Andreas Zwinkau [Wed, 28 Sep 2011 08:27:27 +0000 (10:27 +0200)]
Update libfirm submodule reference

Some Sparc fixes
One local opt fix

12 years agoUpdate libfirm submodule reference
Andreas Zwinkau [Mon, 26 Sep 2011 08:34:58 +0000 (10:34 +0200)]
Update libfirm submodule reference

12 years agoSet visibility for compilerlib entities.
Manuel Mohr [Fri, 23 Sep 2011 10:47:40 +0000 (12:47 +0200)]
Set visibility for compilerlib entities.

12 years agoSet the compilerlib entity creation callback on non-linux systems.
Manuel Mohr [Thu, 22 Sep 2011 14:35:41 +0000 (16:35 +0200)]
Set the compilerlib entity creation callback on non-linux systems.

12 years agoadapt to latest libfirm
Matthias Braun [Thu, 22 Sep 2011 14:55:41 +0000 (16:55 +0200)]
adapt to latest libfirm

12 years agoadapt to latest libfirm
Matthias Braun [Fri, 16 Sep 2011 11:07:55 +0000 (13:07 +0200)]
adapt to latest libfirm