libfirm
18 years agointroduced node index: a small unique per graph node number
Michael Beck [Fri, 7 Apr 2006 12:24:58 +0000 (12:24 +0000)]
introduced node index: a small unique per graph node number

[r7596]

18 years agoadded addtitional ia32 backend statistics
Christian Würdig [Fri, 7 Apr 2006 09:06:32 +0000 (09:06 +0000)]
added addtitional ia32 backend statistics

[r7595]

18 years agoremoved cstore
Michael Beck [Thu, 6 Apr 2006 15:44:47 +0000 (15:44 +0000)]
removed cstore

[r7594]

18 years agoremoved unused cstore
Michael Beck [Thu, 6 Apr 2006 15:38:50 +0000 (15:38 +0000)]
removed unused cstore

[r7593]

18 years agodead node elimination now handles all anchors equaly
Michael Beck [Thu, 6 Apr 2006 15:32:46 +0000 (15:32 +0000)]
dead node elimination now handles all anchors equaly
Especially anchors can now consist of DAG's which are copied as well ...

[r7592]

18 years agoanchors can be dumped yet always
Michael Beck [Thu, 6 Apr 2006 15:29:09 +0000 (15:29 +0000)]
anchors can be dumped yet always

[r7591]

18 years agoadd irgraph.h include
Michael Beck [Thu, 6 Apr 2006 12:58:04 +0000 (12:58 +0000)]
add irgraph.h include

[r7590]

18 years agoincrease Firm version number
Michael Beck [Thu, 6 Apr 2006 12:38:34 +0000 (12:38 +0000)]
increase Firm version number

[r7588]

18 years agoinitialize the phase state
Michael Beck [Thu, 6 Apr 2006 12:36:53 +0000 (12:36 +0000)]
initialize the phase state

[r7587]

18 years agodon't access irg anchor nodes directly
Michael Beck [Thu, 6 Apr 2006 12:35:18 +0000 (12:35 +0000)]
don't access irg anchor nodes directly

[r7586]

18 years agodont access members of irg directly
Michael Beck [Thu, 6 Apr 2006 12:18:31 +0000 (12:18 +0000)]
dont access members of irg directly
handle graph state more generic

[r7585]

18 years agoPut all anchor nodes into an array: This makes the implementation of
Michael Beck [Thu, 6 Apr 2006 12:09:25 +0000 (12:09 +0000)]
Put all anchor nodes into an array: This makes the implementation of
dead node elimination much simplier ...
make irg state more generic

[r7584]

18 years agodon't access irg anchor nodes directly
Michael Beck [Thu, 6 Apr 2006 12:07:11 +0000 (12:07 +0000)]
don't access irg anchor nodes directly

[r7583]

18 years agodon't access members of the irg directly
Michael Beck [Thu, 6 Apr 2006 12:04:46 +0000 (12:04 +0000)]
don't access members of the irg directly

[r7582]

18 years agoHandle endless loops (so a assert was wrong here)
Michael Beck [Wed, 5 Apr 2006 16:42:38 +0000 (16:42 +0000)]
Handle endless loops (so a assert was wrong here)

[r7578]

18 years agoadded ia32 backend statistics
Christian Würdig [Wed, 5 Apr 2006 16:08:28 +0000 (16:08 +0000)]
added ia32 backend statistics

[r7577]

18 years agoadded IA32 backend dbg statistics
Christian Würdig [Tue, 4 Apr 2006 14:25:08 +0000 (14:25 +0000)]
added IA32 backend dbg statistics

[r7573]

18 years agoAdd test functions for machine, machine_operand and machine_user bits
Michael Beck [Tue, 4 Apr 2006 13:00:53 +0000 (13:00 +0000)]
Add test functions for machine, machine_operand and machine_user bits

[r7572]

18 years agoadd irop_flag_machine, irop_flag_machine_op and irop_flag_user flags and check functions
Michael Beck [Tue, 4 Apr 2006 12:20:09 +0000 (12:20 +0000)]
add irop_flag_machine, irop_flag_machine_op and irop_flag_user flags and check functions

[r7571]

18 years agorenamed init_hooks() and init_stat() into firm_*()
Michael Beck [Mon, 3 Apr 2006 13:41:54 +0000 (13:41 +0000)]
renamed init_hooks() and init_stat() into firm_*()

[r7570]

18 years agoHOOK_BACKEND added
Michael Beck [Mon, 3 Apr 2006 13:41:38 +0000 (13:41 +0000)]
HOOK_BACKEND added
renamed init_hooks() into firm_init_hooks()

[r7569]

18 years agoopt reasons updated
Michael Beck [Mon, 3 Apr 2006 13:19:03 +0000 (13:19 +0000)]
opt reasons updated
fixed iro-numbers for pseuso-ops: must not interfere with numbers used in irp

[r7567]

18 years agodbg_backend added
Michael Beck [Mon, 3 Apr 2006 13:17:48 +0000 (13:17 +0000)]
dbg_backend added

[r7566]

18 years agoBugFix: NEW_D_UNOP() macro always craeted Minus nodes :-(
Michael Beck [Fri, 31 Mar 2006 11:49:37 +0000 (11:49 +0000)]
BugFix: NEW_D_UNOP() macro always craeted Minus nodes :-(

[r7551]

18 years agoBugFix: out_cnt was wrong:
Michael Beck [Fri, 31 Mar 2006 07:12:57 +0000 (07:12 +0000)]
BugFix: out_cnt was wrong:
 - was not updated if an edge was deleted (minor, happens only if the whole node
  was deleted but dead nodes might resurvice due to CSE)
- was not cleared after a recompute (really bad)

[r7550]

18 years agomoved #ifdef DEBUG_libfirm commented members last in the structure
Michael Beck [Fri, 31 Mar 2006 07:09:17 +0000 (07:09 +0000)]
moved #ifdef DEBUG_libfirm commented members last in the structure

[r7549]

18 years agocleaned up the order of ifdef's
Michael Beck [Thu, 30 Mar 2006 16:15:10 +0000 (16:15 +0000)]
cleaned up the order of ifdef's

[r7548]

18 years agowrapped debugging modules with DEBUG_ONLY
Christian Würdig [Thu, 30 Mar 2006 15:39:19 +0000 (15:39 +0000)]
wrapped debugging modules with DEBUG_ONLY

[r7547]

18 years agofixed defines for release mode
Christian Würdig [Thu, 30 Mar 2006 13:56:37 +0000 (13:56 +0000)]
fixed defines for release mode

[r7546]

18 years agomake inline version of set_irn_op()
Michael Beck [Thu, 30 Mar 2006 13:12:43 +0000 (13:12 +0000)]
make inline version of set_irn_op()

[r7544]

18 years agoremoved beasm_asm_gnu and beasm_dump_globals
Michael Beck [Thu, 30 Mar 2006 08:56:17 +0000 (08:56 +0000)]
removed beasm_asm_gnu and beasm_dump_globals

[r7539]

18 years agoadd DEBUG_ONLY and RELEASE_ONLY
Michael Beck [Wed, 29 Mar 2006 09:39:15 +0000 (09:39 +0000)]
add DEBUG_ONLY and RELEASE_ONLY

[r7536]

18 years agoCode structured and some bug fixed, but not tested enough!
Beyhan [Tue, 28 Mar 2006 16:10:53 +0000 (16:10 +0000)]
Code structured and some bug fixed, but not tested enough!

[r7535]

18 years agoused new FIRM_DBG_REGISTER macro
Michael Beck [Tue, 28 Mar 2006 12:58:16 +0000 (12:58 +0000)]
used new FIRM_DBG_REGISTER macro

[r7534]

18 years agoused new FIRM_DBG_REGISTER macro
Michael Beck [Tue, 28 Mar 2006 12:40:22 +0000 (12:40 +0000)]
used new FIRM_DBG_REGISTER macro

[r7533]

18 years agointroduced FIRM_DBG_REGISTER() macro to remove debug module registration
Michael Beck [Tue, 28 Mar 2006 11:59:54 +0000 (11:59 +0000)]
introduced FIRM_DBG_REGISTER() macro to remove debug module registration
in releae builds

[r7532]

18 years agoincluding backends from the BE praktikum
Michael Beck [Mon, 27 Mar 2006 16:07:09 +0000 (16:07 +0000)]
including backends from the BE praktikum

[r7531]

18 years agoadd irop_flag_machine to mark "machine operations". This flag should be set for all...
Michael Beck [Sun, 26 Mar 2006 14:12:43 +0000 (14:12 +0000)]
add irop_flag_machine to mark "machine operations". This flag should be set for all machine opcodes.

[r7530]

18 years agoFixed a subtle bug
Sebastian Hack [Fri, 24 Mar 2006 16:51:31 +0000 (16:51 +0000)]
Fixed a subtle bug

[r7529]

18 years agooptimize_one_return() now did not build Phi(a,...,a) if a is an Unknown.
Michael Beck [Fri, 24 Mar 2006 10:41:48 +0000 (10:41 +0000)]
optimize_one_return() now did not build Phi(a,...,a) if a is an Unknown.

[r7525]

18 years agoremove propagation of Unknown. This causes problems in backends in in
Michael Beck [Fri, 24 Mar 2006 10:17:45 +0000 (10:17 +0000)]
remove propagation of Unknown. This causes problems in backends in in
Firm "hand" construction

[r7523]

18 years agois_Mux() added
Michael Beck [Fri, 24 Mar 2006 10:01:41 +0000 (10:01 +0000)]
is_Mux() added

[r7522]

18 years agoFixed include directory
FIRM Projekt Account [Fri, 24 Mar 2006 09:37:11 +0000 (09:37 +0000)]
Fixed include directory

[r7520]

18 years agodocu updated
Michael Beck [Thu, 23 Mar 2006 13:02:04 +0000 (13:02 +0000)]
docu updated

[r7513]

18 years agoColor Mux and Psi nodes gold
Michael Beck [Thu, 23 Mar 2006 12:58:06 +0000 (12:58 +0000)]
Color Mux and Psi nodes gold

[r7512]

18 years agoBugFix:
Michael Beck [Thu, 23 Mar 2006 12:56:51 +0000 (12:56 +0000)]
BugFix:
 - use CopyB proj
 - do NOT remove memory edges of Div/Mod/DivMod nodes that are proved
   not to trow an exception (but only by a Confirm), so the memory
   edge is still a dependency
 - add templates for Psi nodes

[r7511]

18 years agoget_Psi_n_conds() added
Michael Beck [Thu, 23 Mar 2006 12:36:51 +0000 (12:36 +0000)]
get_Psi_n_conds() added

[r7510]

18 years agoAdded support for Psi nodes
Michael Beck [Thu, 23 Mar 2006 12:19:22 +0000 (12:19 +0000)]
Added support for Psi nodes

[r7509]

18 years agoAdded constructors for Psi nodes
Michael Beck [Thu, 23 Mar 2006 12:18:40 +0000 (12:18 +0000)]
Added constructors for Psi nodes

[r7508]

18 years agoPsi op added
Michael Beck [Thu, 23 Mar 2006 12:17:52 +0000 (12:17 +0000)]
Psi op added

[r7507]

18 years agonormalize_one_return() now did not create Bad control flow predecessors
Michael Beck [Wed, 22 Mar 2006 16:53:49 +0000 (16:53 +0000)]
normalize_one_return() now did not create Bad control flow predecessors

[r7505]

18 years agoFixed a bug
Sebastian Hack [Wed, 22 Mar 2006 14:20:12 +0000 (14:20 +0000)]
Fixed a bug

[r7503]

18 years agoThe ir_op's are stored inside the irp, so don't kill the irp()
Michael Beck [Wed, 22 Mar 2006 13:35:05 +0000 (13:35 +0000)]
The ir_op's are stored inside the irp, so don't kill the irp()
before all ir_op's

[r7502]

18 years agoBugged a fix
Christoph Mallon [Wed, 22 Mar 2006 13:12:08 +0000 (13:12 +0000)]
Bugged a fix

[r7501]

18 years agoBugFix: used tp instead of frame_type
Michael Beck [Wed, 22 Mar 2006 10:13:33 +0000 (10:13 +0000)]
BugFix: used tp instead of frame_type

[r7500]

18 years agoframe_alloc_area() added
Michael Beck [Wed, 22 Mar 2006 10:04:50 +0000 (10:04 +0000)]
frame_alloc_area() added

[r7499]

18 years agoremoved c99 style
Christian Würdig [Mon, 20 Mar 2006 16:58:50 +0000 (16:58 +0000)]
removed c99 style

[r7496]

18 years agoExtBlk walker now always visits start block first/last
Michael Beck [Mon, 20 Mar 2006 16:45:45 +0000 (16:45 +0000)]
ExtBlk walker now always visits start block first/last

[r7495]

18 years agoBugFix: set_irn_n() should now work for the block input (-1)
Michael Beck [Mon, 20 Mar 2006 16:36:39 +0000 (16:36 +0000)]
BugFix: set_irn_n() should now work for the block input (-1)

[r7494]

18 years agoremoved flag from remove_critical_cf_edges()
Michael Beck [Mon, 20 Mar 2006 13:36:51 +0000 (13:36 +0000)]
removed flag from remove_critical_cf_edges()
invalidate extended block info if control flow has changed

[r7491]

18 years agoremoved critical_edges flag. Other code depends on remove_critical_edges() doing...
Michael Beck [Mon, 20 Mar 2006 13:35:01 +0000 (13:35 +0000)]
removed critical_edges flag. Other code depends on remove_critical_edges() doing always it's work.

[r7490]

18 years agoadded some missing changed flags
Michael Beck [Mon, 20 Mar 2006 13:33:31 +0000 (13:33 +0000)]
added some missing changed flags

invalidate extended block info and dominance info if exceptions have changed

[r7489]

18 years agoinvalidate extended block info
Michael Beck [Mon, 20 Mar 2006 13:31:35 +0000 (13:31 +0000)]
invalidate extended block info
removed useless if

[r7488]

18 years agoinvalidate extended block info
Michael Beck [Mon, 20 Mar 2006 13:30:56 +0000 (13:30 +0000)]
invalidate extended block info

[r7487]

18 years agoinvalidate extended block info after tail recursion optimization
Michael Beck [Mon, 20 Mar 2006 13:30:08 +0000 (13:30 +0000)]
invalidate extended block info after tail recursion optimization

[r7486]

18 years agoget_irg_extblk_state() and set_irg_extblk_inconsistant() added
Michael Beck [Mon, 20 Mar 2006 07:17:53 +0000 (07:17 +0000)]
get_irg_extblk_state() and set_irg_extblk_inconsistant() added

[r7485]

18 years agoFixed extblock dumper (did not work outside debugger Bug)
Michael Beck [Mon, 20 Mar 2006 07:16:37 +0000 (07:16 +0000)]
Fixed extblock dumper (did not work outside debugger Bug)

[r7484]

18 years agoadd code to dump extended basic blocks
Michael Beck [Mon, 20 Mar 2006 07:13:29 +0000 (07:13 +0000)]
add code to dump extended basic blocks

[r7483]

18 years agoFixed irg_extblock_walk_graph()
Michael Beck [Mon, 20 Mar 2006 07:12:30 +0000 (07:12 +0000)]
Fixed irg_extblock_walk_graph()

[r7482]

18 years agoget_irg_extblk_state() and set_irg_extblk_inconsistant() added
Michael Beck [Mon, 20 Mar 2006 07:11:04 +0000 (07:11 +0000)]
get_irg_extblk_state() and set_irg_extblk_inconsistant() added

[r7481]

18 years agois_singlebit_tarval() added, needed for Cmp optimization
Michael Beck [Mon, 20 Mar 2006 00:43:27 +0000 (00:43 +0000)]
is_singlebit_tarval() added, needed for Cmp optimization

[r7480]

18 years agois_ir_extbb() added
Michael Beck [Mon, 20 Mar 2006 00:41:41 +0000 (00:41 +0000)]
is_ir_extbb() added
extended basic block now contains no internal jump (as expected) and is equivalent to TriMedia tree
extblk walker fixed

[r7479]

18 years agois_ir_extbb() added
Michael Beck [Mon, 20 Mar 2006 00:40:00 +0000 (00:40 +0000)]
is_ir_extbb() added

[r7478]

18 years agocosmetic fixes
Michael Beck [Mon, 20 Mar 2006 00:38:32 +0000 (00:38 +0000)]
cosmetic fixes

[r7477]

18 years agothe extended blocks now uses the block visited flag, so increase this for marking
Michael Beck [Mon, 20 Mar 2006 00:37:14 +0000 (00:37 +0000)]
the extended blocks now uses the block visited flag, so increase this for marking

[r7476]

18 years agoremove dependency of irnode.h
Michael Beck [Sun, 19 Mar 2006 11:57:50 +0000 (11:57 +0000)]
remove dependency of irnode.h

[r7475]

18 years agoAdd optmitizations for the following cases:
Michael Beck [Sun, 19 Mar 2006 11:56:56 +0000 (11:56 +0000)]
Add optmitizations for the following cases:
   And(x, C) == C  ==>  And(x, C) != 0
   And(x, C) != C  ==>  And(X, C) == 0

This helps the ia32 backend to create test instructions and might be useful for other backends
as well

[r7474]

18 years agoFixed extbb construction (why it was damaged ?)
Michael Beck [Sat, 18 Mar 2006 21:27:01 +0000 (21:27 +0000)]
Fixed extbb construction (why it was damaged ?)
Add walker for extbb's

[r7473]

18 years agoadded computed_value for Carry and Borrow
Michael Beck [Sat, 18 Mar 2006 12:13:52 +0000 (12:13 +0000)]
added computed_value for Carry and Borrow
added equivalent_node_Syn()

[r7472]

18 years agoadded Carry and Borrow opcodes
Michael Beck [Sat, 18 Mar 2006 12:12:12 +0000 (12:12 +0000)]
added Carry and Borrow opcodes

[r7471]

18 years agoadded constructors for Carry and Borrow nodes, use macros to shorten the implementation
Michael Beck [Sat, 18 Mar 2006 12:10:48 +0000 (12:10 +0000)]
added constructors for Carry and Borrow nodes, use macros to shorten the implementation

[r7470]

18 years agoDBG_OPT_SYNC added
Michael Beck [Sat, 18 Mar 2006 12:06:15 +0000 (12:06 +0000)]
DBG_OPT_SYNC added

[r7469]

18 years agoHOOK_OPT_SYNC added
Michael Beck [Sat, 18 Mar 2006 12:05:11 +0000 (12:05 +0000)]
HOOK_OPT_SYNC added

[r7468]

18 years agotarval_init_1() expects now the null_value. Bad things might happen if this is not...
Michael Beck [Sat, 18 Mar 2006 12:03:03 +0000 (12:03 +0000)]
tarval_init_1() expects now the null_value. Bad things might happen if this is not 0l yet, so we did not allow
it to be changed for the moment ...

[r7467]

18 years agotarval_P_void is removed now, map old functions and values
Michael Beck [Sat, 18 Mar 2006 12:01:59 +0000 (12:01 +0000)]
tarval_P_void is removed now, map old functions and values

[r7466]

18 years agoremoved tarval_P_void, every reference mode now has it's own NULL tarval
Michael Beck [Sat, 18 Mar 2006 12:01:12 +0000 (12:01 +0000)]
removed tarval_P_void, every reference mode now has it's own NULL tarval
which is created from the null_value given at initialization.

This also solves the problem the new_tarval_from_str() and new_tarval_from_long() returned different
tarvals for the same values.

Reference modes are handled like integer modes, however, convert is only supported for NULL pointer (which might be wrong if null_value != 0)

[r7465]

18 years agohandle a call of an absolute address
Michael Beck [Fri, 17 Mar 2006 13:36:19 +0000 (13:36 +0000)]
handle a call of an absolute address

[r7464]

18 years agoFixed a subtle bug
Sebastian Hack [Fri, 17 Mar 2006 10:44:49 +0000 (10:44 +0000)]
Fixed a subtle bug

[r7462]

18 years agoadded some macros for easier decoding of ptr_access
Michael Beck [Wed, 15 Mar 2006 18:29:51 +0000 (18:29 +0000)]
added some macros for easier decoding of ptr_access

[r7461]

18 years agoImproved doxygen docu
Michael Beck [Wed, 15 Mar 2006 17:34:08 +0000 (17:34 +0000)]
Improved doxygen docu
fixed memory leak
removed useless transport of Call links

[r7459]

18 years agoImproved doxygen documentation.
Michael Beck [Wed, 15 Mar 2006 17:32:25 +0000 (17:32 +0000)]
Improved doxygen documentation.
Added a default value.

[r7458]

18 years agoir/lower include dir added
FIRM Projekt Account [Wed, 15 Mar 2006 16:44:51 +0000 (16:44 +0000)]
ir/lower include dir added

[r7456]

18 years agofixed const mismatch
Rubino Geiß [Wed, 15 Mar 2006 13:49:40 +0000 (13:49 +0000)]
fixed const mismatch

[r7454]

18 years agoadded missing const
Michael Beck [Wed, 15 Mar 2006 13:31:39 +0000 (13:31 +0000)]
added missing const

[r7452]

18 years agoopt_frame.h added
Michael Beck [Wed, 15 Mar 2006 12:55:47 +0000 (12:55 +0000)]
opt_frame.h added

[r7449]

18 years agoopt_frame.[ch] added
Michael Beck [Wed, 15 Mar 2006 12:53:46 +0000 (12:53 +0000)]
opt_frame.[ch] added

[r7448]

18 years agoMoved survive dce stuff here.
Sebastian Hack [Wed, 15 Mar 2006 12:50:17 +0000 (12:50 +0000)]
Moved survive dce stuff here.

[r7447]

18 years agoMoved the survive dce stuff to irgopt.[ch]
Sebastian Hack [Wed, 15 Mar 2006 12:49:57 +0000 (12:49 +0000)]
Moved the survive dce stuff to irgopt.[ch]

[r7446]

18 years agoremoved dependency of irnode.h
Michael Beck [Wed, 15 Mar 2006 12:23:39 +0000 (12:23 +0000)]
removed dependency of irnode.h

[r7445]

18 years agoBack to the old version. Perhaps bitset_next() works now
Sebastian Hack [Tue, 14 Mar 2006 17:51:53 +0000 (17:51 +0000)]
Back to the old version. Perhaps bitset_next() works now

[r7443]