libfirm
14 years agoFixed set_irn_in array allocation obstack
Olaf Liebe [Thu, 28 Jan 2010 12:24:10 +0000 (12:24 +0000)]
Fixed set_irn_in array allocation obstack

[r26997]

14 years agolower_highlevel didn't invalidate outedges, code_placement must assure doms
Olaf Liebe [Thu, 28 Jan 2010 10:15:03 +0000 (10:15 +0000)]
lower_highlevel didn't invalidate outedges, code_placement must assure doms

[r26996]

14 years agoemit unknown values as 0
Olaf Liebe [Thu, 28 Jan 2010 10:13:26 +0000 (10:13 +0000)]
emit unknown values as 0

[r26995]

14 years agolibfirm must be linked to libm
Andreas Zwinkau [Wed, 27 Jan 2010 09:58:21 +0000 (09:58 +0000)]
libfirm must be linked to libm

[r26994]

14 years agoadd a default_layout_compound_type; the backend layouts the frametype now if it hasn...
Matthias Braun [Fri, 22 Jan 2010 09:03:34 +0000 (09:03 +0000)]
add a default_layout_compound_type; the backend layouts the frametype now if it hasn't happened yet

[r26991]

14 years agocosmetic change
Michael Beck [Fri, 22 Jan 2010 00:02:57 +0000 (00:02 +0000)]
cosmetic change

[r26990]

14 years agofix doz stuff
Matthias Braun [Wed, 20 Jan 2010 08:34:24 +0000 (08:34 +0000)]
fix doz stuff

[r26988]

14 years ago- allow_ifconv interface was totally braindamaged. Use a simple and intuitive
Matthias Braun [Tue, 19 Jan 2010 22:53:49 +0000 (22:53 +0000)]
- allow_ifconv interface was totally braindamaged. Use a simple and intuitive
  interface now.
- Fix several bugs in the ia32 version of it
- Unfortunately this leads to the obscure Doz construct being always created
  (instead of only when cmovs are allowed) and firm generates broken code
  for that (testcase coming in 5 minutes)

[r26985]

14 years agoremove ins_permuted from CMovcc and Setcc constructors (again)
Matthias Braun [Mon, 18 Jan 2010 15:27:35 +0000 (15:27 +0000)]
remove ins_permuted from CMovcc and Setcc constructors (again)

[r26983]

14 years agoAdd an cse_neutral opcode property. Nodes with this property are
Michael Beck [Mon, 18 Jan 2010 02:28:05 +0000 (02:28 +0000)]
Add an cse_neutral opcode property. Nodes with this property are
CSE neutral to its users, i.e. op(..., x, ...) ~ op(..., y, ...) if x and y are both neutral.
Setting this property to ia32_ProduceVal nodes allow to CSE nodes that differ in ProduceVals only (which themself NEVER are cse'd).
This "fixes" divmod.

[r26981]

14 years agoAdd a rule to transform x .op. (x .op. y) into y .op. (x .op. x) for commutative...
Michael Beck [Mon, 18 Jan 2010 01:05:41 +0000 (01:05 +0000)]
Add a rule to transform x .op. (x .op. y) into y .op. (x .op. x) for commutative nodes. This finally "fixes" codegen/lea.c and might be usefull for and,or,xor as well.

[r26980]

14 years agoFixed move_consts_up() failure in some contexts (This partly fixes codegen/lea.c).
Michael Beck [Mon, 18 Jan 2010 00:32:49 +0000 (00:32 +0000)]
Fixed move_consts_up() failure in some contexts (This partly fixes codegen/lea.c).

[r26979]

14 years agoPartly undo r26950: there seems be be subtile difference between get_flags_node(...
Michael Beck [Sun, 17 Jan 2010 22:48:37 +0000 (22:48 +0000)]
Partly undo r26950: there seems be be subtile difference between get_flags_node() and determine_final_pnc() that are triggered by that change.
This should fix 175.vpr.

[r26977]

14 years agoReplace the shift_table[] by a simple macro.
Christoph Mallon [Fri, 15 Jan 2010 12:53:46 +0000 (12:53 +0000)]
Replace the shift_table[] by a simple macro.

[r26974]

14 years agostruct types still require names.
Christoph Mallon [Fri, 15 Jan 2010 12:23:35 +0000 (12:23 +0000)]
struct types still require names.

[r26973]

14 years agoCorrect typo in comment.
Christoph Mallon [Fri, 15 Jan 2010 12:20:56 +0000 (12:20 +0000)]
Correct typo in comment.

[r26972]

14 years agoImplement and use tarval_andnot().
Christoph Mallon [Fri, 15 Jan 2010 11:57:22 +0000 (11:57 +0000)]
Implement and use tarval_andnot().

[r26970]

14 years agoRemove the or_table[] and simply use |.
Christoph Mallon [Fri, 15 Jan 2010 11:21:54 +0000 (11:21 +0000)]
Remove the or_table[] and simply use |.

[r26969]

14 years agoRemove the and_table[] and simply use &.
Christoph Mallon [Fri, 15 Jan 2010 11:15:07 +0000 (11:15 +0000)]
Remove the and_table[] and simply use &.

[r26968]

14 years agoRemove the xor_table[] and simply use ^.
Christoph Mallon [Fri, 15 Jan 2010 10:18:16 +0000 (10:18 +0000)]
Remove the xor_table[] and simply use ^.

[r26967]

14 years agoRemove the not_table[] and simply use ^ SC_F.
Christoph Mallon [Fri, 15 Jan 2010 10:11:52 +0000 (10:11 +0000)]
Remove the not_table[] and simply use ^ SC_F.

[r26966]

14 years agoFixed register order (arg, the comments were in ATT).
Michael Beck [Fri, 15 Jan 2010 01:22:07 +0000 (01:22 +0000)]
Fixed register order (arg, the comments were in ATT).

[r26965]

14 years agoAdd binary emitter for setcc.
Michael Beck [Fri, 15 Jan 2010 01:16:48 +0000 (01:16 +0000)]
Add binary emitter for setcc.

[r26964]

14 years agoAs a reminiscence to the famous MAC/65 assembler changed modifier + into > and -...
Michael Beck [Thu, 14 Jan 2010 23:49:06 +0000 (23:49 +0000)]
As a reminiscence to the famous MAC/65 assembler changed modifier + into > and - into <, so >R is the hight part of a register, <R the low part!

[r26963]

14 years agoC99 feature removed.
Michael Beck [Thu, 14 Jan 2010 23:45:52 +0000 (23:45 +0000)]
C99 feature removed.

[r26962]

14 years agoLoop inversion does not fail the given test cases but is still 'dumb'.
Christian Helmer [Thu, 14 Jan 2010 15:23:29 +0000 (15:23 +0000)]
Loop inversion does not fail the given test cases but is still 'dumb'.

[r26961]

14 years agoMichael found a nice trick to implement sets for float compares
Matthias Braun [Thu, 14 Jan 2010 12:41:34 +0000 (12:41 +0000)]
Michael found a nice trick to implement sets for float compares

[r26960]

14 years agoReverted r26952, using the blocks irg is ok ...
Michael Beck [Thu, 14 Jan 2010 00:08:39 +0000 (00:08 +0000)]
Reverted r26952, using the blocks irg is ok ...

[r26959]

14 years agoAdd my debugging code it might be useful in the future ...
Michael Beck [Wed, 13 Jan 2010 23:16:27 +0000 (23:16 +0000)]
Add my debugging code it might be useful in the future ...

[r26958]

14 years agoremove cond_kind attribute, it was never used in a consistent or correct way anyway
Matthias Braun [Wed, 13 Jan 2010 15:48:12 +0000 (15:48 +0000)]
remove cond_kind attribute, it was never used in a consistent or correct way anyway

[r26957]

14 years agocleanup and fix some bugs in ir reader/writer
Matthias Braun [Wed, 13 Jan 2010 15:41:28 +0000 (15:41 +0000)]
cleanup and fix some bugs in ir reader/writer

[r26956]

14 years agoBugFix: the name o for the NEW NODE was a little bit misleading ...
Michael Beck [Tue, 12 Jan 2010 23:02:56 +0000 (23:02 +0000)]
BugFix: the name o for the NEW NODE was a little bit misleading ...

[r26955]

14 years agoTry to fix a rare edges bug:
Michael Beck [Tue, 12 Jan 2010 22:27:48 +0000 (22:27 +0000)]
Try to fix a rare edges bug:
- if a node was built with edges disabled gets dead, but is revived by CSE when edges are enabled, it had NO edges
- tries to keep track of such dead nodes ...

[r26954]

14 years agoSimplify pointer arithmetic.
Michael Beck [Tue, 12 Jan 2010 21:35:35 +0000 (21:35 +0000)]
Simplify pointer arithmetic.

[r26953]

14 years agoCreating a block on some irg is pointless if all other nodes are created on current_i...
Michael Beck [Tue, 12 Jan 2010 21:31:30 +0000 (21:31 +0000)]
Creating a block on some irg is pointless if all other nodes are created on current_ir_graph.

[r26952]

14 years agoFixed graph-independent construction in mux lowering
Olaf Liebe [Tue, 12 Jan 2010 14:10:17 +0000 (14:10 +0000)]
Fixed graph-independent construction in mux lowering

[r26951]

14 years agopanic instead of wrong results for Set and CMov with float compare. Rename Set to...
Matthias Braun [Mon, 11 Jan 2010 18:11:13 +0000 (18:11 +0000)]
panic instead of wrong results for Set and CMov with float compare. Rename Set to Setcc and CMov to CMovcc

[r26950]

14 years agoSmall optimization. Note that the else case crashes libFirm and must be fixed, or...
Michael Beck [Sat, 9 Jan 2010 03:53:25 +0000 (03:53 +0000)]
Small optimization. Note that the else case crashes libFirm and must be fixed, or disable inlining with exceptions yet.

[r26943]

14 years agoAdd win32 version of obstack_vprintf.
Michael Beck [Sat, 9 Jan 2010 01:55:48 +0000 (01:55 +0000)]
Add win32 version of obstack_vprintf.

[r26940]

14 years agothe find_pointer_type interface still needs a mode because we might have pointers...
Michael Beck [Sat, 9 Jan 2010 01:30:31 +0000 (01:30 +0000)]
the find_pointer_type interface still needs a mode because we might have pointers with different modes ...

[r26938]

14 years agothe find_pointer_type interface still needs a mode because we might have pointers...
Michael Beck [Sat, 9 Jan 2010 01:26:19 +0000 (01:26 +0000)]
the find_pointer_type interface still needs a mode because we might have pointers with different modes ...

small C99 fix

[r26937]

14 years agoBugFixes:
Michael Beck [Sat, 9 Jan 2010 00:36:17 +0000 (00:36 +0000)]
BugFixes:
- fixed memory leak
- invalidate the analysis info only if the graph contains muxes
- fixed linking of Proj nodes
- fixed linking of mbh lists: no need to manipulate them, as new newly created block is a mbh itself

[r26936]

14 years ago- part_block() does not change the current_block anymore
Michael Beck [Sat, 9 Jan 2010 00:30:16 +0000 (00:30 +0000)]
- part_block() does not change the current_block anymore
- update docu: collect_phiprojs() puts all partBlocks into a list of its mbh, part_block uses this info
- the lower block (old_block) of a splitted block is always a mbh
- part_block sets and restores current_ir_graph and did not depends on its preliminary setting

[r26935]

14 years agofix last commit
Matthias Braun [Fri, 8 Jan 2010 19:09:47 +0000 (19:09 +0000)]
fix last commit

[r26932]

14 years agolower ConvB->LL and LL->ConvB and simplify code
Matthias Braun [Fri, 8 Jan 2010 18:35:53 +0000 (18:35 +0000)]
lower ConvB->LL and LL->ConvB and simplify code

[r26930]

14 years agofix fehler172
Matthias Braun [Thu, 7 Jan 2010 20:01:36 +0000 (20:01 +0000)]
fix fehler172

[r26926]

14 years agofix extended fehler171
Matthias Braun [Thu, 7 Jan 2010 18:47:22 +0000 (18:47 +0000)]
fix extended fehler171

[r26924]

14 years agoFix fehler171
Matthias Braun [Thu, 7 Jan 2010 18:40:52 +0000 (18:40 +0000)]
Fix fehler171

[r26922]

14 years agoLiebe part3: mux lowerer (with minimal changes)
Matthias Braun [Thu, 7 Jan 2010 18:30:31 +0000 (18:30 +0000)]
Liebe part3: mux lowerer (with minimal changes)

[r26919]

14 years agoremove unused code
Matthias Braun [Thu, 7 Jan 2010 18:30:27 +0000 (18:30 +0000)]
remove unused code

[r26918]

14 years agomake part_block independent of current_ir_graph
Matthias Braun [Thu, 7 Jan 2010 18:27:46 +0000 (18:27 +0000)]
make part_block independent of current_ir_graph

[r26917]

14 years agowe still need to read in pointer mode
Matthias Braun [Thu, 7 Jan 2010 18:27:27 +0000 (18:27 +0000)]
we still need to read in pointer mode

[r26916]

14 years agoLiebe bugs part2: switch cases are analyzed in long variables, use LONG_MAX and LONG_MIN
Matthias Braun [Thu, 7 Jan 2010 15:57:08 +0000 (15:57 +0000)]
Liebe bugs part2: switch cases are analyzed in long variables, use LONG_MAX and LONG_MIN

[r26915]

14 years agoadd comments and descriptions to mode_b lowering; reformat lower_mode_b.c to latest...
Matthias Braun [Thu, 7 Jan 2010 15:01:47 +0000 (15:01 +0000)]
add comments and descriptions to mode_b lowering; reformat lower_mode_b.c to latest coding conventions

[r26914]

14 years agoLiebe bugs part1: Eor(1, Proj(Cmp)) was broken - simply remove the optimisation since...
Matthias Braun [Thu, 7 Jan 2010 13:52:30 +0000 (13:52 +0000)]
Liebe bugs part1: Eor(1, Proj(Cmp)) was broken - simply remove the optimisation since Eor(1, X) gets transformed to Not anyway and Not(Cmp) gets optimized

[r26913]

14 years agoGracefully handle a missing retrieve_type_dbg.
Michael Beck [Thu, 7 Jan 2010 03:06:33 +0000 (03:06 +0000)]
Gracefully handle a missing retrieve_type_dbg.

[r26910]

14 years agoPrimitive, Pointer, Array and Method types are anonymous now
Matthias Braun [Tue, 5 Jan 2010 15:56:54 +0000 (15:56 +0000)]
Primitive, Pointer, Array and Method types are anonymous now
- There's a new type_dbg_info* that allows you to attach debug names to types
- get_type_name and get_type_ident are now more. The new ir_print_type
  and the usual ir_printf("%+F", type) help in most usage cases.
  But you should be aware that names are not guaranteed to be unique anymore
  (or positively said: You don't have no trouble anymore building unique names
   in code that creates types)
- No need to specify mode for new pointer types anymore (you can still do it
  with set_type_mode)

[r26909]

14 years agoBugFix: fixed conversion for x < lo || x >|>= hi
Michael Beck [Mon, 4 Jan 2010 00:50:55 +0000 (00:50 +0000)]
BugFix: fixed conversion for x < lo  || x >|>= hi

[r26904]

14 years agoBugFix:
Michael Beck [Sun, 3 Jan 2010 15:48:29 +0000 (15:48 +0000)]
BugFix:
 - the upper block must dominate the block, else we cannot fuse
   upper and lower block

[r26899]

14 years agoBugFixes:
Michael Beck [Sun, 3 Jan 2010 14:14:27 +0000 (14:14 +0000)]
BugFixes:
- place new constructed code into the right block, which might
  be neither the block of any Cmp
- only the <null, null> test can have different operands, all others
  must have one common op in both compares

- remove the meaningless <null, null> message

[r26898]

14 years agoBugFix: a Cmp can be in a different block than its Cond
Michael Beck [Sun, 3 Jan 2010 13:11:15 +0000 (13:11 +0000)]
BugFix: a Cmp can be in a different block than its Cond

[r26897]

14 years agoDeleted support for type_id.
Michael Beck [Sun, 3 Jan 2010 11:32:49 +0000 (11:32 +0000)]
Deleted support for type_id.

[r26896]

14 years agoI was annoyed by the compiler warnings about implicit conversions.
Michael Beck [Sun, 3 Jan 2010 11:28:44 +0000 (11:28 +0000)]
I was annoyed by the compiler warnings about implicit conversions.

[r26895]

14 years agoFixed some obviously wrong conditions.
Michael Beck [Sat, 2 Jan 2010 21:03:10 +0000 (21:03 +0000)]
Fixed some obviously wrong conditions.

[r26890]

14 years ago- handle p == 0 || q == 0
Michael Beck [Sat, 2 Jan 2010 18:05:35 +0000 (18:05 +0000)]
- handle p == 0 || q == 0

[r26885]

14 years agofixed doxygen comment
Michael Beck [Sat, 2 Jan 2010 17:13:16 +0000 (17:13 +0000)]
fixed doxygen comment

[r26883]

14 years agoAllow the modulo-shift setting for reference modes. This is a work-around that fixes...
Michael Beck [Sat, 2 Jan 2010 17:12:27 +0000 (17:12 +0000)]
Allow the modulo-shift setting for reference modes. This is a work-around that fixes find_unsigned_mode().

[r26882]

14 years agoI was annoyed by the compiler warnings about declaration isn't a prototype
Matthias Braun [Sat, 2 Jan 2010 15:12:28 +0000 (15:12 +0000)]
I was annoyed by the compiler warnings about declaration isn't a prototype

[r26880]

14 years agocleanup dbginfo public API: no dbg_snprint anymore
Matthias Braun [Sat, 2 Jan 2010 13:57:38 +0000 (13:57 +0000)]
cleanup dbginfo public API: no dbg_snprint anymore

(there is retrieve_dbginfo stuff already there! And don't tell me about possible
 future extensions where sets of locations are merged and someone generates
 usefull debug info from that. Noone uses this currently!)

[r26878]

14 years ago- handle p == NULL || q == NULL and friends
Michael Beck [Sat, 2 Jan 2010 13:51:44 +0000 (13:51 +0000)]
- handle p == NULL || q == NULL and friends
- fixed a lot of comments

[r26877]

14 years agobe consistent and only add extern C in the firm.h header and in no other header
Matthias Braun [Sat, 2 Jan 2010 13:34:36 +0000 (13:34 +0000)]
be consistent and only add extern C in the firm.h header and in no other header

[r26876]

14 years agofix my last commit (shouldn't commit so fast...)
Matthias Braun [Sat, 2 Jan 2010 11:58:15 +0000 (11:58 +0000)]
fix my last commit (shouldn't commit so fast...)

[r26875]

14 years agoreally remove type_id
Matthias Braun [Sat, 2 Jan 2010 11:51:17 +0000 (11:51 +0000)]
really remove type_id

[r26874]

14 years agoremove the unused 'ident' type, remove tpo_max add tpo_last
Matthias Braun [Sat, 2 Jan 2010 11:32:35 +0000 (11:32 +0000)]
remove the unused 'ident' type, remove tpo_max add tpo_last

[r26873]

14 years ago- implement a <= x <= b ==> x-a <=u b-a
Michael Beck [Sat, 2 Jan 2010 02:49:51 +0000 (02:49 +0000)]
- implement a <= x <= b ==> x-a <=u b-a
- fixed path compression
- use debug output instead of fprintf

[r26872]

14 years agoFixed and enhanced boolopt:
Michael Beck [Sat, 2 Jan 2010 01:49:09 +0000 (01:49 +0000)]
Fixed and enhanced boolopt:
- added missing Phi-check
- added missing path compression
- do not add bad nodes, as these no not reduce the number of block inputs
- add doxygen comments

[r26871]

14 years agoget_arm_shift_modifier() has no implementation, removed declaration.
Michael Beck [Thu, 31 Dec 2009 14:05:15 +0000 (14:05 +0000)]
get_arm_shift_modifier() has no implementation, removed declaration.

[r26869]

14 years ago- use irg instead of current_ir_graph
Michael Beck [Wed, 30 Dec 2009 01:10:29 +0000 (01:10 +0000)]
- use irg instead of current_ir_graph

[r26868]

14 years ago- inside irg_verify() call irn_verify_irg(), not irn_verify() (which is disabled...
Michael Beck [Wed, 30 Dec 2009 01:00:26 +0000 (01:00 +0000)]
- inside irg_verify() call irn_verify_irg(), not irn_verify() (which is disabled if DEBUG_libfirm is not set)
- small BugFix: output the right graph in error message

[r26867]

14 years agoimplement ir_graph_pass_set_parallel()
Michael Beck [Wed, 30 Dec 2009 00:46:29 +0000 (00:46 +0000)]
implement ir_graph_pass_set_parallel()

[r26866]

14 years ago- changed to able to "run the path parallel"
Michael Beck [Wed, 30 Dec 2009 00:22:58 +0000 (00:22 +0000)]
- changed to able to "run the path parallel"
- adapt to firm coding conventions even more

[r26865]

14 years ago- kicked useless blocks
Michael Beck [Wed, 30 Dec 2009 00:04:50 +0000 (00:04 +0000)]
- kicked useless blocks

[r26864]

14 years agofix for compound_path deprecation
Michael Beck [Tue, 29 Dec 2009 23:48:22 +0000 (23:48 +0000)]
fix for compound_path deprecation

[r26862]

14 years agomove compound_graph path stuff into own files and add deprecation comments
Matthias Braun [Tue, 29 Dec 2009 16:56:12 +0000 (16:56 +0000)]
move compound_graph path stuff into own files and add deprecation comments

[r26860]

14 years agofix another compound_graph_path usage
Matthias Braun [Tue, 29 Dec 2009 16:49:44 +0000 (16:49 +0000)]
fix another compound_graph_path usage

[r26857]

14 years agofix another illegal usage of compound_graph_path stuff
Matthias Braun [Tue, 29 Dec 2009 16:40:38 +0000 (16:40 +0000)]
fix another illegal usage of compound_graph_path stuff

[r26856]

14 years agofix illegal usage of compound_graph_path
Matthias Braun [Tue, 29 Dec 2009 16:18:12 +0000 (16:18 +0000)]
fix illegal usage of compound_graph_path

[r26854]

14 years agoadapt to firm coding conventions
Matthias Braun [Tue, 29 Dec 2009 13:00:49 +0000 (13:00 +0000)]
adapt to firm coding conventions

[r26851]

14 years agoAdapted to revision 26847.
Sebastian Buchwald [Mon, 28 Dec 2009 10:26:53 +0000 (10:26 +0000)]
Adapted to revision 26847.

[r26849]

14 years agoAdapted to previous commit.
Sebastian Buchwald [Mon, 28 Dec 2009 10:19:31 +0000 (10:19 +0000)]
Adapted to previous commit.

[r26848]

14 years agonoone is using the external effect specification stuff
Matthias Braun [Tue, 22 Dec 2009 10:08:10 +0000 (10:08 +0000)]
noone is using the external effect specification stuff

[r26832]

14 years agotestprograms are outdated and not maintained
Matthias Braun [Tue, 22 Dec 2009 10:07:13 +0000 (10:07 +0000)]
testprograms are outdated and not maintained

[r26831]

14 years agoanother comment after #include
Matthias Braun [Mon, 21 Dec 2009 18:42:22 +0000 (18:42 +0000)]
another comment after #include

[r26830]

14 years agofirmjni is totally outdated and useless nowadays
Matthias Braun [Mon, 21 Dec 2009 18:42:07 +0000 (18:42 +0000)]
firmjni is totally outdated and useless nowadays

[r26829]

14 years agono unnecessary comments behind #include
Matthias Braun [Mon, 21 Dec 2009 18:40:30 +0000 (18:40 +0000)]
no unnecessary comments behind #include

[r26828]

14 years agoadapt to timer changes
Matthias Braun [Mon, 21 Dec 2009 18:29:23 +0000 (18:29 +0000)]
adapt to timer changes

[r26827]

14 years agoadapt to timer changes
Matthias Braun [Mon, 21 Dec 2009 18:25:59 +0000 (18:25 +0000)]
adapt to timer changes

[r26826]

14 years agokeep timer interface simple - no names and descriptions for timers anymore, you shoul...
Matthias Braun [Mon, 21 Dec 2009 17:43:35 +0000 (17:43 +0000)]
keep timer interface simple - no names and descriptions for timers anymore, you should do that bookkeeping externally

[r26821]

14 years agoremove some unused code
Matthias Braun [Mon, 21 Dec 2009 15:48:39 +0000 (15:48 +0000)]
remove some unused code

[r26820]

14 years agofix
Matthias Braun [Mon, 21 Dec 2009 12:35:13 +0000 (12:35 +0000)]
fix

[r26819]