Michael Beck [Thu, 6 Nov 2008 00:58:05 +0000 (00:58 +0000)]
- allow fabs to be constructed
[r23459]
Michael Beck [Thu, 6 Nov 2008 00:36:17 +0000 (00:36 +0000)]
- moved declarations to appropriate header files
[r23458]
Michael Beck [Thu, 6 Nov 2008 00:30:12 +0000 (00:30 +0000)]
- fixed comments
[r23457]
Michael Beck [Wed, 5 Nov 2008 14:17:56 +0000 (14:17 +0000)]
- refactored code for generic block shaping
[r23445]
Michael Beck [Wed, 5 Nov 2008 13:50:12 +0000 (13:50 +0000)]
- BugFix: remove critical edges to ensure that Phi's have diferent predecessor
blocks
[r23443]
Moritz Kroll [Mon, 3 Nov 2008 19:39:38 +0000 (19:39 +0000)]
Added new storage class for pointer constants
[r23420]
Michael Beck [Mon, 3 Nov 2008 18:46:30 +0000 (18:46 +0000)]
- DO NOT EDIT AFTER TEST!
[r23419]
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]
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]
Michael Beck [Mon, 3 Nov 2008 12:02:21 +0000 (12:02 +0000)]
- firmEvaluator (VusualStudio 6/7/8 debug extension) added
[r23400]
Michael Beck [Sun, 2 Nov 2008 17:31:06 +0000 (17:31 +0000)]
- fixed RELEASE build
[r23398]
Christoph Mallon [Sat, 1 Nov 2008 21:22:31 +0000 (21:22 +0000)]
Fix switch lowerer for cases close to overflow.
[r23374]
Matthias Braun [Sat, 1 Nov 2008 18:20:48 +0000 (18:20 +0000)]
remove test dir
[r23364]
Matthias Braun [Sat, 1 Nov 2008 18:20:10 +0000 (18:20 +0000)]
move tests around
[r23363]
Matthias Braun [Sat, 1 Nov 2008 18:19:36 +0000 (18:19 +0000)]
remove strange tests which does not link/run
[r23361]
Matthias Braun [Sat, 1 Nov 2008 18:18:19 +0000 (18:18 +0000)]
move tests around
[r23360]
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]
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]
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]
Michael Beck [Fri, 31 Oct 2008 14:47:13 +0000 (14:47 +0000)]
- fixed allocation of resources even more
[r23328]
Michael Beck [Fri, 31 Oct 2008 14:34:18 +0000 (14:34 +0000)]
- fixed allocation of resources
[r23327]
Michael Beck [Fri, 31 Oct 2008 14:03:24 +0000 (14:03 +0000)]
- removed rest of already unsupported USE_EXPLICIT_PHI_IN_STACK
[r23326]
Michael Beck [Fri, 31 Oct 2008 14:01:02 +0000 (14:01 +0000)]
- shorten the lifetime of a variable
[r23325]
Michael Beck [Fri, 31 Oct 2008 14:00:22 +0000 (14:00 +0000)]
- Fixed memory leak: delete pseudo-irgs if any
[r23324]
Michael Beck [Fri, 31 Oct 2008 13:59:44 +0000 (13:59 +0000)]
- indentation
[r23323]
Michael Beck [Fri, 31 Oct 2008 13:38:46 +0000 (13:38 +0000)]
- fixed typo
[r23322]
Michael Beck [Fri, 31 Oct 2008 13:38:31 +0000 (13:38 +0000)]
- fixed _get_irp_irg()
[r23321]
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]
Michael Beck [Fri, 31 Oct 2008 13:21:24 +0000 (13:21 +0000)]
- removed some constant ARR_LEN's
- removed useless assert
[r23319]
Sebastian Buchwald [Fri, 31 Oct 2008 11:31:47 +0000 (11:31 +0000)]
- reserve necessary resources before collect phiprojs
- fixed assertion
[r23316]
Michael Beck [Thu, 30 Oct 2008 15:48:04 +0000 (15:48 +0000)]
- reserve the IR_RESOURCE_PHI_LIST resource
[r23313]
Michael Beck [Thu, 30 Oct 2008 15:44:59 +0000 (15:44 +0000)]
- reserve the IR_RESOURCE_PHI_LIST resource
[r23312]
Michael Beck [Thu, 30 Oct 2008 15:41:48 +0000 (15:41 +0000)]
- invalidate tr_outs because Calls might be removed
[r23311]
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]
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]
Michael Beck [Tue, 28 Oct 2008 15:12:43 +0000 (15:12 +0000)]
deactivate debug output
[r23280]
Michael Beck [Tue, 28 Oct 2008 14:56:19 +0000 (14:56 +0000)]
improved example
[r23276]
Michael Beck [Tue, 28 Oct 2008 14:55:49 +0000 (14:55 +0000)]
- implemented apply phase
[r23275]
Michael Beck [Tue, 28 Oct 2008 14:21:39 +0000 (14:21 +0000)]
- small cleanup
[r23271]
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]
Michael Beck [Tue, 28 Oct 2008 04:34:13 +0000 (04:34 +0000)]
- analysis part of an block merging optimization
[r23250]
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]
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]
Michael Beck [Tue, 28 Oct 2008 04:30:41 +0000 (04:30 +0000)]
- example for the new block optimization
[r23247]
Michael Beck [Mon, 27 Oct 2008 21:47:50 +0000 (21:47 +0000)]
- more irp_resource_reserved()
[r23246]
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]
Michael Beck [Mon, 27 Oct 2008 17:09:10 +0000 (17:09 +0000)]
- used new global resource allocator
[r23238]
Michael Beck [Mon, 27 Oct 2008 15:43:44 +0000 (15:43 +0000)]
- add functions for global (ir_prog) resource management
[r23235]
Michael Beck [Mon, 27 Oct 2008 15:16:29 +0000 (15:16 +0000)]
- introduced IR_RESOURCE_ENTITY_LINK
[r23232]
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]
Michael Beck [Mon, 27 Oct 2008 14:16:10 +0000 (14:16 +0000)]
- fixed (useless) assertion
[r23229]
Michael Beck [Sat, 25 Oct 2008 21:50:12 +0000 (21:50 +0000)]
- removed useless checking of control flow input for default_compute()
[r23193]
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]
Matthias Braun [Sat, 25 Oct 2008 20:43:29 +0000 (20:43 +0000)]
don't ask mode_T node for output register
[r23190]
Matthias Braun [Sat, 25 Oct 2008 19:30:41 +0000 (19:30 +0000)]
mark ebp output of leave as ignore
[r23186]
Matthias Braun [Sat, 25 Oct 2008 19:30:12 +0000 (19:30 +0000)]
fix fehler161 to link correctly
[r23185]
Michael Beck [Sat, 25 Oct 2008 19:07:37 +0000 (19:07 +0000)]
demonstrates \!chunk->deleted assertion
[r23182]
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]
Sebastian Buchwald [Fri, 24 Oct 2008 20:51:43 +0000 (20:51 +0000)]
Kill Perm after pushing all operands through it.
[r23177]
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]
Andreas Zwinkau [Fri, 24 Oct 2008 17:02:19 +0000 (17:02 +0000)]
Clear private data, when creating new out edges
[r23173]
Michael Beck [Fri, 24 Oct 2008 13:32:06 +0000 (13:32 +0000)]
- fixed output
[r23170]
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]
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]
Michael Beck [Fri, 24 Oct 2008 03:03:29 +0000 (03:03 +0000)]
- fixed all memory leaks
[r23160]
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]
Michael Beck [Fri, 24 Oct 2008 02:24:14 +0000 (02:24 +0000)]
- small cleanup
[r23158]
Michael Beck [Fri, 24 Oct 2008 02:05:03 +0000 (02:05 +0000)]
- reserve the visited resource
[r23157]
Michael Beck [Fri, 24 Oct 2008 02:02:11 +0000 (02:02 +0000)]
- use xmalloc instead of malloc
- reserve the IRN_LINK resource
[r23156]
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]
Michael Beck [Fri, 24 Oct 2008 01:31:29 +0000 (01:31 +0000)]
- C99 features removed
[r23154]
Michael Beck [Thu, 23 Oct 2008 22:26:27 +0000 (22:26 +0000)]
- better solution for the "mode_M node computes Top" problem
[r23152]
Christoph Mallon [Thu, 23 Oct 2008 19:03:06 +0000 (19:03 +0000)]
Simplify dump_node_req().
[r23144]
Matthias Braun [Thu, 23 Oct 2008 18:04:02 +0000 (18:04 +0000)]
forgot 2 files
[r23143]
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]
Christoph Mallon [Thu, 23 Oct 2008 16:53:57 +0000 (16:53 +0000)]
Remove the unused regs_saved_by_me hook.
[r23138]
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]
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]
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]
Michael Beck [Thu, 23 Oct 2008 13:01:33 +0000 (13:01 +0000)]
- example for the Unknown problem
[r23129]
Michael Beck [Thu, 23 Oct 2008 00:40:37 +0000 (00:40 +0000)]
- fixed r23120
[r23123]
Michael Beck [Wed, 22 Oct 2008 21:34:05 +0000 (21:34 +0000)]
- put verify_type() again after the "type changed" test
[r23120]
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]
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]
Michael Beck [Wed, 22 Oct 2008 13:44:19 +0000 (13:44 +0000)]
example for the new commutative combo
[r23104]
Michael Beck [Tue, 21 Oct 2008 17:14:06 +0000 (17:14 +0000)]
Example for optimizing non-strict programs using combo.
[r23083]
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]
Christoph Mallon [Tue, 21 Oct 2008 07:26:12 +0000 (07:26 +0000)]
Let testcase return 0.
[r23058]
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]
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]
Michael Beck [Mon, 20 Oct 2008 18:48:11 +0000 (18:48 +0000)]
- fixed memory leak: delete edges when a graph is deleted
[r23047]
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]
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]
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]
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]
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]
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]
Christoph Mallon [Sat, 18 Oct 2008 10:56:50 +0000 (10:56 +0000)]
Add ALLOCAN() and ALLOCANZ().
[r22985]
Christoph Mallon [Sat, 18 Oct 2008 10:25:33 +0000 (10:25 +0000)]
Remove unused variable.
[r22984]
Christoph Mallon [Sat, 18 Oct 2008 10:18:53 +0000 (10:18 +0000)]
Turn alloca() with fixed size into array.
[r22983]