libfirm
15 years ago- when a graph is lowered because of struct return changes, transform
Michael Beck [Mon, 3 Nov 2008 14:22:00 +0000 (14:22 +0000)]
- when a graph is lowered because of struct return changes, transform
  the value param arguments in the same way like all "register" arguments:
  this fixes fehler162.c

[r23408]

15 years ago- add some comments
Michael Beck [Mon, 3 Nov 2008 14:18:44 +0000 (14:18 +0000)]
- add some comments
- split get_or_set_call_arg() into get_call_arg() and create_call_arg()

[r23407]

15 years ago- firmEvaluator (VusualStudio 6/7/8 debug extension) added
Michael Beck [Mon, 3 Nov 2008 12:02:21 +0000 (12:02 +0000)]
- firmEvaluator (VusualStudio 6/7/8 debug extension) added

[r23400]

15 years ago- fixed RELEASE build
Michael Beck [Sun, 2 Nov 2008 17:31:06 +0000 (17:31 +0000)]
- fixed RELEASE build

[r23398]

15 years agoFix switch lowerer for cases close to overflow.
Christoph Mallon [Sat, 1 Nov 2008 21:22:31 +0000 (21:22 +0000)]
Fix switch lowerer for cases close to overflow.

[r23374]

15 years agoremove test dir
Matthias Braun [Sat, 1 Nov 2008 18:20:48 +0000 (18:20 +0000)]
remove test dir

[r23364]

15 years agomove tests around
Matthias Braun [Sat, 1 Nov 2008 18:20:10 +0000 (18:20 +0000)]
move tests around

[r23363]

15 years agoremove strange tests which does not link/run
Matthias Braun [Sat, 1 Nov 2008 18:19:36 +0000 (18:19 +0000)]
remove strange tests which does not link/run

[r23361]

15 years agomove tests around
Matthias Braun [Sat, 1 Nov 2008 18:18:19 +0000 (18:18 +0000)]
move tests around

[r23360]

15 years agoswitch is still broken, copying over cparser testcase since noone runs the cparser...
Matthias Braun [Sat, 1 Nov 2008 16:56:55 +0000 (16:56 +0000)]
switch is still broken, copying over cparser testcase since noone runs the cparser tests regularily

[r23350]

15 years ago- calling normalize_n_returns() improve greatly the block shaping
Michael Beck [Fri, 31 Oct 2008 16:10:01 +0000 (16:10 +0000)]
- calling normalize_n_returns() improve greatly the block shaping
- improved debug output

[r23335]

15 years agoPreserving a test case, which would brake with pbqp transformer on ARM and postinc...
Andreas Zwinkau [Fri, 31 Oct 2008 14:54:56 +0000 (14:54 +0000)]
Preserving a test case, which would brake with pbqp transformer on ARM and postinc rules

[r23329]

15 years ago- fixed allocation of resources even more
Michael Beck [Fri, 31 Oct 2008 14:47:13 +0000 (14:47 +0000)]
- fixed allocation of resources even more

[r23328]

15 years ago- fixed allocation of resources
Michael Beck [Fri, 31 Oct 2008 14:34:18 +0000 (14:34 +0000)]
- fixed allocation of resources

[r23327]

15 years ago- removed rest of already unsupported USE_EXPLICIT_PHI_IN_STACK
Michael Beck [Fri, 31 Oct 2008 14:03:24 +0000 (14:03 +0000)]
- removed rest of already unsupported USE_EXPLICIT_PHI_IN_STACK

[r23326]

15 years ago- shorten the lifetime of a variable
Michael Beck [Fri, 31 Oct 2008 14:01:02 +0000 (14:01 +0000)]
- shorten the lifetime of a variable

[r23325]

15 years ago- Fixed memory leak: delete pseudo-irgs if any
Michael Beck [Fri, 31 Oct 2008 14:00:22 +0000 (14:00 +0000)]
- Fixed memory leak: delete pseudo-irgs if any

[r23324]

15 years ago- indentation
Michael Beck [Fri, 31 Oct 2008 13:59:44 +0000 (13:59 +0000)]
- indentation

[r23323]

15 years ago- fixed typo
Michael Beck [Fri, 31 Oct 2008 13:38:46 +0000 (13:38 +0000)]
- fixed typo

[r23322]

15 years ago- fixed _get_irp_irg()
Michael Beck [Fri, 31 Oct 2008 13:38:31 +0000 (13:38 +0000)]
- fixed _get_irp_irg()

[r23321]

15 years ago- BugFix: use remove_irp_irg() instead of free_ir_graph() to prevent
Michael Beck [Fri, 31 Oct 2008 13:24:14 +0000 (13:24 +0000)]
- BugFix: use remove_irp_irg() instead of free_ir_graph() to prevent
  double graph freeing
- Put the constant result of stat_is_active() into variable

[r23320]

15 years ago- removed some constant ARR_LEN's
Michael Beck [Fri, 31 Oct 2008 13:21:24 +0000 (13:21 +0000)]
- removed some constant ARR_LEN's
- removed useless assert

[r23319]

15 years ago- reserve necessary resources before collect phiprojs
Sebastian Buchwald [Fri, 31 Oct 2008 11:31:47 +0000 (11:31 +0000)]
- reserve necessary resources before collect phiprojs
- fixed assertion

[r23316]

15 years ago- reserve the IR_RESOURCE_PHI_LIST resource
Michael Beck [Thu, 30 Oct 2008 15:48:04 +0000 (15:48 +0000)]
- reserve the IR_RESOURCE_PHI_LIST resource

[r23313]

15 years ago- reserve the IR_RESOURCE_PHI_LIST resource
Michael Beck [Thu, 30 Oct 2008 15:44:59 +0000 (15:44 +0000)]
- reserve the IR_RESOURCE_PHI_LIST resource

[r23312]

15 years ago- invalidate tr_outs because Calls might be removed
Michael Beck [Thu, 30 Oct 2008 15:41:48 +0000 (15:41 +0000)]
- invalidate tr_outs because Calls might be removed

[r23311]

15 years ago- do not treat Constants as live-ins: this assures, that a
Michael Beck [Thu, 30 Oct 2008 02:13:58 +0000 (02:13 +0000)]
- do not treat Constants as live-ins: this assures, that a
  meltet block has the same number of inputs like the original

[r23306]

15 years ago- BugFix: kill partitions with 0 blocks either
Michael Beck [Thu, 30 Oct 2008 01:39:36 +0000 (01:39 +0000)]
- BugFix: kill partitions with 0 blocks either
- BugFix: set the ins for the newly created Phis
- BugFix: correctly construct the Phis for old inputs

[r23305]

15 years agodeactivate debug output
Michael Beck [Tue, 28 Oct 2008 15:12:43 +0000 (15:12 +0000)]
deactivate debug output

[r23280]

15 years agoimproved example
Michael Beck [Tue, 28 Oct 2008 14:56:19 +0000 (14:56 +0000)]
improved example

[r23276]

15 years ago- implemented apply phase
Michael Beck [Tue, 28 Oct 2008 14:55:49 +0000 (14:55 +0000)]
- implemented apply phase

[r23275]

15 years ago- small cleanup
Michael Beck [Tue, 28 Oct 2008 14:21:39 +0000 (14:21 +0000)]
- small cleanup

[r23271]

15 years ago- add block Phi list resource
Michael Beck [Tue, 28 Oct 2008 13:17:26 +0000 (13:17 +0000)]
- add block Phi list resource
- check, that only local/global resources are allocated

[r23266]

15 years ago- analysis part of an block merging optimization
Michael Beck [Tue, 28 Oct 2008 04:34:13 +0000 (04:34 +0000)]
- analysis part of an block merging optimization

[r23250]

15 years ago- renamed normalize_node() into ir_normalize_node() and make it available outside...
Michael Beck [Tue, 28 Oct 2008 04:33:06 +0000 (04:33 +0000)]
- renamed normalize_node() into ir_normalize_node() and make it available outside iropt.c

[r23249]

15 years ago- removed const from function definitions (causes warnings on MSVC: formal parameter...
Michael Beck [Tue, 28 Oct 2008 04:32:18 +0000 (04:32 +0000)]
- removed const from function definitions (causes warnings on MSVC: formal parameter different)

[r23248]

15 years ago- example for the new block optimization
Michael Beck [Tue, 28 Oct 2008 04:30:41 +0000 (04:30 +0000)]
- example for the new block optimization

[r23247]

15 years ago- more irp_resource_reserved()
Michael Beck [Mon, 27 Oct 2008 21:47:50 +0000 (21:47 +0000)]
- more irp_resource_reserved()

[r23246]

15 years ago- BugFix: ensure that Convs are created in the right block
Michael Beck [Mon, 27 Oct 2008 17:33:57 +0000 (17:33 +0000)]
- BugFix: ensure that Convs are  created in the right block
- BugFix: add support for Id nodes when searching for leave Sel's:
  we MUST find all leaves else some nodes are NOT removed
- removed use of visited flag, useless: we cannot reache a Sel
  node by different data pathes
- add ressource allocators

[r23240]

15 years ago- used new global resource allocator
Michael Beck [Mon, 27 Oct 2008 17:09:10 +0000 (17:09 +0000)]
- used new global resource allocator

[r23238]

15 years ago- add functions for global (ir_prog) resource management
Michael Beck [Mon, 27 Oct 2008 15:43:44 +0000 (15:43 +0000)]
- add functions for global (ir_prog) resource management

[r23235]

15 years ago- introduced IR_RESOURCE_ENTITY_LINK
Michael Beck [Mon, 27 Oct 2008 15:16:29 +0000 (15:16 +0000)]
- introduced IR_RESOURCE_ENTITY_LINK

[r23232]

15 years ago- completely get rid of useless assertion (skip_Id() want's non-const nodes)
Michael Beck [Mon, 27 Oct 2008 14:23:51 +0000 (14:23 +0000)]
- completely get rid of useless assertion (skip_Id() want's non-const nodes)

[r23230]

15 years ago- fixed (useless) assertion
Michael Beck [Mon, 27 Oct 2008 14:16:10 +0000 (14:16 +0000)]
- fixed (useless) assertion

[r23229]

15 years ago- removed useless checking of control flow input for default_compute()
Michael Beck [Sat, 25 Oct 2008 21:50:12 +0000 (21:50 +0000)]
- removed useless checking of control flow input for default_compute()

[r23193]

15 years ago- BugFix: a - a is NOT 0 for NaN's
Michael Beck [Sat, 25 Oct 2008 21:48:15 +0000 (21:48 +0000)]
- BugFix: a - a is NOT 0 for NaN's
- a * 0 is NOT 0 for Inf

[r23192]

15 years agodon't ask mode_T node for output register
Matthias Braun [Sat, 25 Oct 2008 20:43:29 +0000 (20:43 +0000)]
don't ask mode_T node for output register

[r23190]

15 years agomark ebp output of leave as ignore
Matthias Braun [Sat, 25 Oct 2008 19:30:41 +0000 (19:30 +0000)]
mark ebp output of leave as ignore

[r23186]

15 years agofix fehler161 to link correctly
Matthias Braun [Sat, 25 Oct 2008 19:30:12 +0000 (19:30 +0000)]
fix fehler161 to link correctly

[r23185]

15 years agodemonstrates \!chunk->deleted assertion
Michael Beck [Sat, 25 Oct 2008 19:07:37 +0000 (19:07 +0000)]
demonstrates \!chunk->deleted assertion

[r23182]

15 years ago- handling of Top mode can be switched on/off at runtime (although no flag yet)
Michael Beck [Fri, 24 Oct 2008 20:55:37 +0000 (20:55 +0000)]
- handling of Top mode can be switched on/off at runtime (although no flag yet)
- Fix for a rare problem: when checking commutative touched nodes, we must distinguish between op(a, a) and op(a, b): these are NOT congruent and must not be on the same touched list

[r23178]

15 years agoKill Perm after pushing all operands through it.
Sebastian Buchwald [Fri, 24 Oct 2008 20:51:43 +0000 (20:51 +0000)]
Kill Perm after pushing all operands through it.

[r23177]

15 years agoLet edges_assure() only activate edge kinds, which are not activated yet.
Christoph Mallon [Fri, 24 Oct 2008 17:32:01 +0000 (17:32 +0000)]
Let edges_assure() only activate edge kinds, which are not activated yet.

[r23176]

15 years agoClear private data, when creating new out edges
Andreas Zwinkau [Fri, 24 Oct 2008 17:02:19 +0000 (17:02 +0000)]
Clear private data, when creating new out edges

[r23173]

15 years ago- fixed output
Michael Beck [Fri, 24 Oct 2008 13:32:06 +0000 (13:32 +0000)]
- fixed output

[r23170]

15 years agoJust assure edges, instead of blindly activating them
Andreas Zwinkau [Fri, 24 Oct 2008 13:28:42 +0000 (13:28 +0000)]
Just assure edges, instead of blindly activating them

Maybe edges_activate_kind should assert !info->activated ?

[r23169]

15 years ago- replaced the linear search with quadratic runtime inside normal_select()
Michael Beck [Fri, 24 Oct 2008 03:49:08 +0000 (03:49 +0000)]
- replaced the linear search with quadratic runtime inside normal_select()
  by a mostly O(1) access
- simpler memory freeing

[r23161]

15 years ago- fixed all memory leaks
Michael Beck [Fri, 24 Oct 2008 03:03:29 +0000 (03:03 +0000)]
- fixed all memory leaks

[r23160]

15 years ago- fixed some memory leaks
Michael Beck [Fri, 24 Oct 2008 02:51:00 +0000 (02:51 +0000)]
- fixed some memory leaks
- link resource is used until scheduler ends, honor that

[r23159]

15 years ago- small cleanup
Michael Beck [Fri, 24 Oct 2008 02:24:14 +0000 (02:24 +0000)]
- small cleanup

[r23158]

15 years ago- reserve the visited resource
Michael Beck [Fri, 24 Oct 2008 02:05:03 +0000 (02:05 +0000)]
- reserve the visited resource

[r23157]

15 years ago- use xmalloc instead of malloc
Michael Beck [Fri, 24 Oct 2008 02:02:11 +0000 (02:02 +0000)]
- use xmalloc instead of malloc
- reserve the IRN_LINK resource

[r23156]

15 years ago- add a hook for normalizing a node
Michael Beck [Fri, 24 Oct 2008 01:37:03 +0000 (01:37 +0000)]
- add a hook for normalizing a node
- used new hook to count number of normalizations

[r23155]

15 years ago- C99 features removed
Michael Beck [Fri, 24 Oct 2008 01:31:29 +0000 (01:31 +0000)]
- C99 features removed

[r23154]

15 years ago- better solution for the "mode_M node computes Top" problem
Michael Beck [Thu, 23 Oct 2008 22:26:27 +0000 (22:26 +0000)]
- better solution for the "mode_M node computes Top" problem

[r23152]

15 years agoSimplify dump_node_req().
Christoph Mallon [Thu, 23 Oct 2008 19:03:06 +0000 (19:03 +0000)]
Simplify dump_node_req().

[r23144]

15 years agoforgot 2 files
Matthias Braun [Thu, 23 Oct 2008 18:04:02 +0000 (18:04 +0000)]
forgot 2 files

[r23143]

15 years ago- Part1 of backend reorganisation:
Matthias Braun [Thu, 23 Oct 2008 18:02:53 +0000 (18:02 +0000)]
- Part1 of backend reorganisation:
Node flags and node registers are stored in a generic backend_info struct now
instead of every part of the backend doing custom (and slow) stuff

[r23142]

15 years agoRemove the unused regs_saved_by_me hook.
Christoph Mallon [Thu, 23 Oct 2008 16:53:57 +0000 (16:53 +0000)]
Remove the unused regs_saved_by_me hook.

[r23138]

15 years ago- more special Top handling: it is NOT allowed to replace a mode_M
Michael Beck [Thu, 23 Oct 2008 16:52:45 +0000 (16:52 +0000)]
- more special Top handling: it is NOT allowed to replace a mode_M
  Proj by UnknownM, this would destroy the graph, so skip the
  predecessor in that case

[r23136]

15 years ago- Call nodes computes always bottom, even if they have Unknown predecessors
Michael Beck [Thu, 23 Oct 2008 16:09:10 +0000 (16:09 +0000)]
- Call nodes computes always bottom, even if they have Unknown predecessors
- remove by_all_const: always saturate the type

[r23132]

15 years ago- more work on the Unknown problems: the only
Michael Beck [Thu, 23 Oct 2008 13:04:58 +0000 (13:04 +0000)]
- more work on the Unknown problems: the only
  solution seems to be fixing the type of the Proj(Cond)

[r23130]

15 years ago- example for the Unknown problem
Michael Beck [Thu, 23 Oct 2008 13:01:33 +0000 (13:01 +0000)]
- example for the Unknown problem

[r23129]

15 years ago- fixed r23120
Michael Beck [Thu, 23 Oct 2008 00:40:37 +0000 (00:40 +0000)]
- fixed r23120

[r23123]

15 years ago- put verify_type() again after the "type changed" test
Michael Beck [Wed, 22 Oct 2008 21:34:05 +0000 (21:34 +0000)]
- put verify_type() again after the "type changed" test

[r23120]

15 years ago- kill keep-alive edges to dead blocks before doing apply_result(),
Michael Beck [Wed, 22 Oct 2008 15:59:41 +0000 (15:59 +0000)]
- kill keep-alive edges to dead blocks before doing apply_result(),
  this reduces the graph and fixes the problem of dead cf to dead blocks
  (which assert else)

[r23114]

15 years ago- BugFix: fixed monotony checker, now enabled
Michael Beck [Wed, 22 Oct 2008 14:36:10 +0000 (14:36 +0000)]
- BugFix: fixed monotony checker, now enabled
- removed Cond hack: it does not help. Instead cond nodes
  are automatically handled AFTER all data nodes by
  placing them on an extra list
- BugFix: apply_cf() now remove bad cf even if the
  resulting block has only one predecessor and
  cannot be combined with its predecessor
- BugFix: data nodes computing Top must be replaced
  by Unknown, not Bad

[r23111]

15 years agoexample for the new commutative combo
Michael Beck [Wed, 22 Oct 2008 13:44:19 +0000 (13:44 +0000)]
example for the new commutative combo

[r23104]

15 years agoExample for optimizing non-strict programs using combo.
Michael Beck [Tue, 21 Oct 2008 17:14:06 +0000 (17:14 +0000)]
Example for optimizing non-strict programs using combo.

[r23083]

15 years ago- activated WITH_UNKNOWN
Michael Beck [Tue, 21 Oct 2008 17:08:17 +0000 (17:08 +0000)]
- activated WITH_UNKNOWN
- Hopefully fixed handling of unknown nodes for Cmp and Cond:
  - let cmp nodes calculate Top like all othe data nodes: this would let
    Mux nodes to calculate Unknown instead of taking the true result
  - Let Cond(Top) always select FALSE/default: This is tricky. Nodes are only reavaluated
    IFF the predecessor changed its type. Because nodes are initialized with Top
    this never happens, let all Proj(Cond) be unreachable.
    We avoid this condition by the same way we work around Phi: whenever a Block
    node is placed on the list, place its Cond nodes (and because they are Tuple
    all its Proj-nodes either n the cprop list)
- BugFix: Proj-Nodes are also pinned if theire predecessor is pinned
- while combo is running, add the vcg dump hook, so dumped graphes contains the
  partition and the type of a node
- put simpler condition first in an if-cascade

[r23082]

15 years agoLet testcase return 0.
Christoph Mallon [Tue, 21 Oct 2008 07:26:12 +0000 (07:26 +0000)]
Let testcase return 0.

[r23058]

15 years ago- put freed edges into a free-list, reducing memory count used for edges
Michael Beck [Mon, 20 Oct 2008 19:58:45 +0000 (19:58 +0000)]
- put freed edges into a free-list, reducing memory count used for edges

[r23051]

15 years ago- old code probably crashes in the edge set contains already the
Michael Beck [Mon, 20 Oct 2008 19:56:45 +0000 (19:56 +0000)]
- old code probably crashes in the edge set contains already the
  newly created edge, so add a panic if this happens
- put freed edges into a free-list, reducing memory count used for edges

[r23050]

15 years ago- fixed memory leak: delete edges when a graph is deleted
Michael Beck [Mon, 20 Oct 2008 18:48:11 +0000 (18:48 +0000)]
- fixed memory leak: delete edges when a graph is deleted

[r23047]

15 years ago- BugFix: we need an extra compute_Return(), else compute_default()
Michael Beck [Mon, 20 Oct 2008 14:16:43 +0000 (14:16 +0000)]
- BugFix: we need an extra compute_Return(), else compute_default()
  kills Return(Top) nodes ...

[r23035]

15 years ago- comaparation of x and Top produces True, as Top is congruent to any other class
Michael Beck [Mon, 20 Oct 2008 13:53:01 +0000 (13:53 +0000)]
- comaparation of x and Top produces True, as Top is congruent to any other class
- do not replace Phi(Top, ..., x, ..., Top) -> x, this might produce non-strict programs
  (does NOt happen as long WITH_UNKNOWN is undefined)

[r23033]

15 years ago- typos fixed
Michael Beck [Mon, 20 Oct 2008 13:11:10 +0000 (13:11 +0000)]
- typos fixed
- compute: check the control input only for pinned nodes (prepare for
  global_cse run)

[r23031]

15 years agoFixed bug in conv-conv optimization: We have to assure, that we don't change the...
Sebastian Buchwald [Sun, 19 Oct 2008 13:37:45 +0000 (13:37 +0000)]
Fixed bug in conv-conv optimization: We have to assure, that we don't change the mode when deleting the conv.

[r23009]

15 years agoI like zombies, but not millions of them in a hash map!!
Moritz Kroll [Sun, 19 Oct 2008 01:55:42 +0000 (01:55 +0000)]
I like zombies, but not millions of them in a hash map!!

[r23005]

15 years agoAdded trivial test case where optimize_reassociation will never get to a fixpoint...
Moritz Kroll [Sun, 19 Oct 2008 01:52:40 +0000 (01:52 +0000)]
Added trivial test case where optimize_reassociation will never get to a fixpoint (result will always be non-zero)

[r23004]

15 years agoAdd ALLOCAN() and ALLOCANZ().
Christoph Mallon [Sat, 18 Oct 2008 10:56:50 +0000 (10:56 +0000)]
Add ALLOCAN() and ALLOCANZ().

[r22985]

15 years agoRemove unused variable.
Christoph Mallon [Sat, 18 Oct 2008 10:25:33 +0000 (10:25 +0000)]
Remove unused variable.

[r22984]

15 years agoTurn alloca() with fixed size into array.
Christoph Mallon [Sat, 18 Oct 2008 10:18:53 +0000 (10:18 +0000)]
Turn alloca() with fixed size into array.

[r22983]

15 years agoRemove unused variables.
Christoph Mallon [Sat, 18 Oct 2008 10:00:31 +0000 (10:00 +0000)]
Remove unused variables.

[r22982]

15 years agoRemove unused variable.
Christoph Mallon [Sat, 18 Oct 2008 09:59:01 +0000 (09:59 +0000)]
Remove unused variable.

[r22981]

15 years agoFree a little more memory than before.
Sebastian Buchwald [Fri, 17 Oct 2008 19:05:08 +0000 (19:05 +0000)]
Free a little more memory than before.

[r22976]

15 years agoZero initialize allocation to avoid using uninitialized value.
Sebastian Buchwald [Fri, 17 Oct 2008 18:52:11 +0000 (18:52 +0000)]
Zero initialize allocation to avoid using uninitialized value.

[r22975]

15 years agotypo
Sebastian Buchwald [Fri, 17 Oct 2008 18:41:52 +0000 (18:41 +0000)]
typo

[r22974]

15 years ago- add comment explaining the connection betwenn the race and Follower -> Leader trans...
Michael Beck [Fri, 17 Oct 2008 05:07:45 +0000 (05:07 +0000)]
- add comment explaining the connection betwenn the race and Follower -> Leader transition

[r22963]

15 years agoBugFix for a rare case:
Michael Beck [Fri, 17 Oct 2008 04:40:57 +0000 (04:40 +0000)]
BugFix for a rare case:
  when splitting a partition containing followers, these
  might stay on the "looser" side and must be constant-propagated
  then to allow them to split out.
  This might be a fix for a self-made problem. We do the follower ->
  leader transition on both sides while the original algo "might"
  do than on the winner side only...

[r22962]