libfirm
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]

15 years agoIt's also necessary to add one rule.
Sebastian Buchwald [Thu, 16 Oct 2008 09:07:59 +0000 (09:07 +0000)]
It's also necessary to add one rule.

[r22941]

15 years agoYOU MAKE BUNNY CRY (and rebuild the libedgfe!)
Moritz Kroll [Thu, 16 Oct 2008 07:58:24 +0000 (07:58 +0000)]
YOU MAKE BUNNY CRY (and rebuild the libedgfe!)

[r22939]

15 years agoadd missing inlucde
Moritz Kroll [Thu, 16 Oct 2008 07:48:44 +0000 (07:48 +0000)]
add missing inlucde

[r22938]

15 years agoadd some asserts/switch to panics
Moritz Kroll [Thu, 16 Oct 2008 07:47:00 +0000 (07:47 +0000)]
add some asserts/switch to panics

[r22937]

15 years agoRemove unused attribute const arch_env_t* arch_env from struct TEMPLATE_code_gen_t...
Christoph Mallon [Thu, 16 Oct 2008 06:55:19 +0000 (06:55 +0000)]
Remove unused attribute const arch_env_t* arch_env from struct TEMPLATE_code_gen_t (no actual backend has it either).

[r22935]

15 years agoRemove unnecessary global variable.
Christoph Mallon [Thu, 16 Oct 2008 06:44:42 +0000 (06:44 +0000)]
Remove unnecessary global variable.

[r22934]

15 years agoRemove the unused before_sched callback.
Christoph Mallon [Wed, 15 Oct 2008 21:39:29 +0000 (21:39 +0000)]
Remove the unused before_sched callback.

[r22932]

15 years agoFollow-up to r22928: Remove arch_register_class_put().
Christoph Mallon [Wed, 15 Oct 2008 21:37:11 +0000 (21:37 +0000)]
Follow-up to r22928: Remove arch_register_class_put().

[r22931]

15 years agoRemove dumping the -am graph. It is exactly the same as the -opt graph.
Christoph Mallon [Wed, 15 Oct 2008 21:29:45 +0000 (21:29 +0000)]
Remove dumping the -am graph.  It is exactly the same as the -opt graph.

[r22930]

15 years agoAdded documentation: we can construct a PBQP instance which can not be solved heurist...
Sebastian Buchwald [Wed, 15 Oct 2008 19:42:16 +0000 (19:42 +0000)]
Added documentation: we can construct a PBQP instance which can not be solved heuristically if we removed some address mode patterns from our pattern set.

[r22929]

15 years agoRemove arch_get_allocatable_regs().
Christoph Mallon [Wed, 15 Oct 2008 19:33:07 +0000 (19:33 +0000)]
Remove arch_get_allocatable_regs().

[r22928]

15 years agoSimplify test case.
Sebastian Buchwald [Wed, 15 Oct 2008 19:11:56 +0000 (19:11 +0000)]
Simplify test case.

[r22927]

15 years ago- move the helper irms_is_ to an extra enum to prevent gcc warnings
Michael Beck [Wed, 15 Oct 2008 19:01:28 +0000 (19:01 +0000)]
- move the helper irms_is_ to an extra enum to prevent gcc warnings

[r22926]

15 years ago- removed old comment
Michael Beck [Wed, 15 Oct 2008 18:54:44 +0000 (18:54 +0000)]
- removed old comment
- fixed indentation

[r22925]

15 years ago- speed up mode_is_*() calls
Michael Beck [Wed, 15 Oct 2008 18:40:39 +0000 (18:40 +0000)]
- speed up mode_is_*() calls

[r22924]

15 years ago- check if inline was already defined to prevent warning
Michael Beck [Wed, 15 Oct 2008 18:20:12 +0000 (18:20 +0000)]
- check if inline was already defined to prevent warning

[r22923]

15 years agoRemove wrong comment.
Christoph Mallon [Wed, 15 Oct 2008 18:19:12 +0000 (18:19 +0000)]
Remove wrong comment.

[r22921]

15 years agoAdd arch_reg_out_is_allocatable().
Christoph Mallon [Wed, 15 Oct 2008 18:14:52 +0000 (18:14 +0000)]
Add arch_reg_out_is_allocatable().

[r22919]

15 years agoAdded users to shift.
Sebastian Buchwald [Wed, 15 Oct 2008 18:01:33 +0000 (18:01 +0000)]
Added users to shift.

[r22918]

15 years agoSimplify example.
Sebastian Buchwald [Wed, 15 Oct 2008 14:00:54 +0000 (14:00 +0000)]
Simplify example.

[r22915]

15 years agoContinued example.
Sebastian Buchwald [Wed, 15 Oct 2008 13:50:29 +0000 (13:50 +0000)]
Continued example.

[r22913]

15 years agoAdd arch_get_irn_reg_class_out().
Christoph Mallon [Wed, 15 Oct 2008 13:46:33 +0000 (13:46 +0000)]
Add arch_get_irn_reg_class_out().

[r22912]

15 years agoContinued example.
Sebastian Buchwald [Wed, 15 Oct 2008 13:11:08 +0000 (13:11 +0000)]
Continued example.

[r22911]

15 years agoNext try to get a wrong infinity result when using PBQP transformer.
Sebastian Buchwald [Wed, 15 Oct 2008 11:54:27 +0000 (11:54 +0000)]
Next try to get a wrong infinity result when using PBQP transformer.

[r22905]

15 years agoDirectly call arch_get_register_req_out() instead of duplicating its Proj handling...
Christoph Mallon [Wed, 15 Oct 2008 10:15:50 +0000 (10:15 +0000)]
Directly call arch_get_register_req_out() instead of duplicating its Proj handling magic.

[r22897]

15 years agoAdd arch_get_register_req_out().
Christoph Mallon [Wed, 15 Oct 2008 10:04:02 +0000 (10:04 +0000)]
Add arch_get_register_req_out().

[r22896]

15 years agoIt is not sensible to query any other than the first output register requirement...
Christoph Mallon [Wed, 15 Oct 2008 09:50:20 +0000 (09:50 +0000)]
It is not sensible to query any other than the first output register requirement of a non-mode_T node.

[r22895]

15 years agoMarginally reduce the number of calls to arch_get_irn_reg_class().
Christoph Mallon [Wed, 15 Oct 2008 06:13:40 +0000 (06:13 +0000)]
Marginally reduce the number of calls to arch_get_irn_reg_class().

[r22894]

15 years agoUse arch_get_register_req() instead of duplicating the code. This shows that frequen...
Christoph Mallon [Wed, 15 Oct 2008 05:29:52 +0000 (05:29 +0000)]
Use arch_get_register_req() instead of duplicating the code.  This shows that frequency of fetching the reg reqs is even higher.

[r22893]

15 years agoMade xmalloc.h C++ compatible
Moritz Kroll [Wed, 15 Oct 2008 00:31:45 +0000 (00:31 +0000)]
Made xmalloc.h C++ compatible

[r22891]

15 years agos/\<\(LC_\)\?INLINE\>/inline/.
Christoph Mallon [Tue, 14 Oct 2008 20:37:46 +0000 (20:37 +0000)]
s/\<\(LC_\)\?INLINE\>/inline/.

[r22889]

15 years agoRemove unused void* from arch_register_t.
Christoph Mallon [Tue, 14 Oct 2008 20:20:21 +0000 (20:20 +0000)]
Remove unused void* from arch_register_t.

[r22888]

15 years agoonly check register_allocation when verify is enabled
Matthias Braun [Tue, 14 Oct 2008 13:39:30 +0000 (13:39 +0000)]
only check register_allocation when verify is enabled

[r22877]

15 years agoname the option 'verify' because I can never remember 'vrfy'
Matthias Braun [Tue, 14 Oct 2008 13:29:28 +0000 (13:29 +0000)]
name the option 'verify' because I can never remember 'vrfy'

[r22876]

15 years agouse default error handler if none is specified
Matthias Braun [Tue, 14 Oct 2008 10:55:11 +0000 (10:55 +0000)]
use default error handler if none is specified

[r22873]

15 years agoPhasenkopplung Spiller/Copymin
Matthias Braun [Tue, 14 Oct 2008 08:12:40 +0000 (08:12 +0000)]
Phasenkopplung Spiller/Copymin

[r22869]

15 years agobe consequent: don't warn about config files, simply don't read them by default
Matthias Braun [Tue, 14 Oct 2008 07:32:19 +0000 (07:32 +0000)]
be consequent: don't warn about config files, simply don't read them by default

[r22868]

15 years agono HAVE_CONFIG_H needed anymore
Matthias Braun [Tue, 14 Oct 2008 07:31:42 +0000 (07:31 +0000)]
no HAVE_CONFIG_H needed anymore

[r22867]

15 years ago- switch -b help to "command line format", not .firmrc format ;-)
Michael Beck [Tue, 14 Oct 2008 01:59:40 +0000 (01:59 +0000)]
- switch -b help to "command line format", not .firmrc format ;-)

[r22866]

15 years ago- let the compiler optimize the transformer selection IF there is nothing to select
Michael Beck [Tue, 14 Oct 2008 01:40:12 +0000 (01:40 +0000)]
- let the compiler optimize the transformer selection IF there is nothing to select

[r22865]

15 years ago- call be_init_modules() last, so the option order is preserved
Michael Beck [Tue, 14 Oct 2008 01:30:35 +0000 (01:30 +0000)]
- call be_init_modules() last, so the option order is preserved

[r22864]

15 years ago- add options to the list tail, so they are shown in the same order they are declared
Michael Beck [Tue, 14 Oct 2008 01:27:33 +0000 (01:27 +0000)]
- add options to the list tail, so they are shown in the same order they are declared

[r22862]

15 years ago- removed useless prototype
Michael Beck [Tue, 14 Oct 2008 01:15:09 +0000 (01:15 +0000)]
- removed useless prototype
- renamed option from "null" to "none", like all other options

[r22861]

15 years ago- warn if a config file could not be opened
Michael Beck [Tue, 14 Oct 2008 01:08:32 +0000 (01:08 +0000)]
- warn if a config file could not be opened

[r22860]

15 years agoYep, I think this is a dangerous feature, so warn about it.
Michael Beck [Tue, 14 Oct 2008 01:05:01 +0000 (01:05 +0000)]
Yep, I think this is a dangerous feature, so warn about it.
Use -b config=~/.firmrc if you want to suppress this warning.

[r22859]

15 years ago- removed useless cast
Michael Beck [Tue, 14 Oct 2008 00:55:07 +0000 (00:55 +0000)]
- removed useless cast

[r22858]

15 years ago- remove expensive is_liveness_node() calls from liveness_for_node() and
Michael Beck [Tue, 14 Oct 2008 00:50:55 +0000 (00:50 +0000)]
- remove expensive is_liveness_node() calls from liveness_for_node() and
  put them into caller (when not already checked)
- liveness_for_node() is not called anymore from walker, fixed signature
- using post-walker leads to "mostly" sorted node array
- some small clearance

[r22857]

15 years ago- if optimize for size, use leave and do not align labels
Michael Beck [Tue, 14 Oct 2008 00:06:39 +0000 (00:06 +0000)]
- if optimize for size, use leave and do not align labels

[r22856]

15 years ago- Fixed doxygen comment
Michael Beck [Mon, 13 Oct 2008 23:08:13 +0000 (23:08 +0000)]
- Fixed doxygen comment

[r22855]

15 years ago- add doxygen comments
Michael Beck [Mon, 13 Oct 2008 23:06:46 +0000 (23:06 +0000)]
- add doxygen comments

[r22854]

15 years ago- increase string length for x86 architectural options
Michael Beck [Mon, 13 Oct 2008 22:41:22 +0000 (22:41 +0000)]
- increase string length for x86 architectural options

[r22852]

15 years ago- BugFix: DECL_DUMP() and DECL_DUMP_VALS() uses strncat() wrong, causing buffer overrun
Michael Beck [Mon, 13 Oct 2008 22:38:32 +0000 (22:38 +0000)]
- BugFix: DECL_DUMP() and DECL_DUMP_VALS() uses strncat() wrong, causing buffer overrun

[r22850]

15 years ago- fix gen_Store(). Always generate integer stores for floating point constant stores.
Michael Beck [Mon, 13 Oct 2008 20:25:19 +0000 (20:25 +0000)]
- fix gen_Store(). Always generate integer stores for floating point constant stores.

[r22849]

15 years agoExtend 8bit test optimisation to any byte when using address mode.
Christoph Mallon [Mon, 13 Oct 2008 20:14:32 +0000 (20:14 +0000)]
Extend 8bit test optimisation to any byte when using address mode.

[r22848]

15 years agoAlways include config.h.
Sebastian Buchwald [Mon, 13 Oct 2008 16:29:15 +0000 (16:29 +0000)]
Always include config.h.

[r22843]

15 years agoia32 peephole: Change a Test(x, c) to 8Bit, if 0 <= c < 256 (3 byte shorter opcode).
Christoph Mallon [Mon, 13 Oct 2008 11:30:45 +0000 (11:30 +0000)]
ia32 peephole: Change a Test(x, c) to 8Bit, if 0 <= c < 256 (3 byte shorter opcode).

[r22837]

15 years agoRemove an unnecessary global variable, use the walker environment.
Christoph Mallon [Mon, 13 Oct 2008 10:40:10 +0000 (10:40 +0000)]
Remove an unnecessary global variable, use the walker environment.

[r22836]

15 years agoUse ia32_mark_non_am().
Christoph Mallon [Mon, 13 Oct 2008 09:18:05 +0000 (09:18 +0000)]
Use ia32_mark_non_am().

[r22834]

15 years agoUse ia32_is_non_address_mode_node().
Christoph Mallon [Mon, 13 Oct 2008 09:16:26 +0000 (09:16 +0000)]
Use ia32_is_non_address_mode_node().

[r22833]

15 years agoImprove AM folding heuristic for dest AM when it is the only user of an address calcu...
Christoph Mallon [Mon, 13 Oct 2008 08:58:16 +0000 (08:58 +0000)]
Improve AM folding heuristic for dest AM when it is the only user of an address calculation.  Because dest AM results in two address calculation users, the address calculation was not folded.

[r22832]

15 years agoComplement r22830.
Christoph Mallon [Mon, 13 Oct 2008 08:35:41 +0000 (08:35 +0000)]
Complement r22830.

[r22831]

15 years agoTurn the parameter force of ia32_create_address_mode() into a bitflag.
Christoph Mallon [Mon, 13 Oct 2008 08:30:35 +0000 (08:30 +0000)]
Turn the parameter force of ia32_create_address_mode() into a bitflag.

[r22830]