Matthias Braun [Thu, 3 Sep 2009 14:45:30 +0000 (14:45 +0000)]
improve hack to also work when the value has been 'permed'
[r26478]
Matthias Braun [Thu, 3 Sep 2009 14:33:31 +0000 (14:33 +0000)]
don't optimistically split these strange msut_be_different copies
[r26477]
Matthias Braun [Thu, 3 Sep 2009 14:33:17 +0000 (14:33 +0000)]
CopyKeeps have mostly Keep-like semantics too - make verifier/spill-node placement respect that
[r26476]
Matthias Braun [Thu, 3 Sep 2009 10:37:47 +0000 (10:37 +0000)]
fix (nearly) endless loops in some cases of propagate_phi
[r26475]
Christoph Mallon [Thu, 3 Sep 2009 05:13:03 +0000 (05:13 +0000)]
Sort file lists in Makefile.am.
[r26473]
Christoph Mallon [Thu, 3 Sep 2009 05:06:19 +0000 (05:06 +0000)]
Add missing files to Makefile.am.
[r26472]
Christoph Mallon [Wed, 2 Sep 2009 19:09:04 +0000 (19:09 +0000)]
Remove removed files from Makefile.am.
[r26471]
Matthias Braun [Wed, 2 Sep 2009 16:57:04 +0000 (16:57 +0000)]
merge preferences along congruence classes
[r26470]
Christoph Mallon [Wed, 2 Sep 2009 10:40:20 +0000 (10:40 +0000)]
Add OALLOC*() to make allocating from obstacks a bit nicer.
[r26468]
Christoph Mallon [Wed, 2 Sep 2009 07:28:03 +0000 (07:28 +0000)]
Create clean register requirements for Phis, otherwise reg_reqs_equal() and maybe others could get confused. It is unknown whether this caused any problems.
[r26467]
Christoph Mallon [Wed, 2 Sep 2009 06:18:48 +0000 (06:18 +0000)]
Reuse already fetched values.
[r26465]
Christoph Mallon [Wed, 2 Sep 2009 06:18:16 +0000 (06:18 +0000)]
Correct typo in comment.
[r26464]
Matthias Braun [Tue, 1 Sep 2009 20:16:48 +0000 (20:16 +0000)]
old and never used files
[r26461]
Matthias Braun [Tue, 1 Sep 2009 20:15:08 +0000 (20:15 +0000)]
old and nowaday useless tool stuff
[r26460]
Matthias Braun [Tue, 1 Sep 2009 19:06:25 +0000 (19:06 +0000)]
- improve block scheduling heuristic by deciding a priori which edge is the fall-through leaving a loop
- remove old extbb block scheduler
[r26459]
Matthias Braun [Tue, 1 Sep 2009 19:04:59 +0000 (19:04 +0000)]
improv execfreq estimation if a loop outedge leaves multiple loops
[r26458]
Matthias Braun [Mon, 31 Aug 2009 13:17:48 +0000 (13:17 +0000)]
fix rematerialisation code to not ask Proj nodes for properties of instructions
[r26453]
Michael Beck [Sun, 30 Aug 2009 14:37:05 +0000 (14:37 +0000)]
Changed splitting of commutative nodes: Instead of touching only the
first occuring class (op(a,a) or op(a,b)), touch all and split the
touched list into halfs.
This should fix fehler170.c and is more logical and simpler code.
[r26446]
Michael Beck [Fri, 28 Aug 2009 22:46:21 +0000 (22:46 +0000)]
- removed C99 features
[r26444]
Matthias Braun [Fri, 28 Aug 2009 09:26:27 +0000 (09:26 +0000)]
clarify comment
[r26440]
Christoph Mallon [Thu, 27 Aug 2009 13:26:53 +0000 (13:26 +0000)]
Correct typos in comments.
[r26438]
Matthias Braun [Thu, 27 Aug 2009 13:04:30 +0000 (13:04 +0000)]
improve phi propagation
[r26437]
Sebastian Buchwald [Wed, 26 Aug 2009 11:05:13 +0000 (11:05 +0000)]
typo
[r26429]
Michael Beck [Wed, 26 Aug 2009 06:49:25 +0000 (06:49 +0000)]
- fixed r26421
[r26427]
Sebastian Buchwald [Tue, 25 Aug 2009 12:57:29 +0000 (12:57 +0000)]
Added missing parameter documentation.
[r26424]
Matthias Braun [Tue, 25 Aug 2009 12:15:47 +0000 (12:15 +0000)]
benewalloc: refactorign assignment_t struct is not needed anymore we can save ir_node* directly
[r26423]
Matthias Braun [Tue, 25 Aug 2009 11:03:22 +0000 (11:03 +0000)]
addendum to the should_be_same fix: we also have to use the same rule for the dynamic boni
[r26422]
Sebastian Buchwald [Mon, 24 Aug 2009 20:15:41 +0000 (20:15 +0000)]
Fixed more doxygen warnings.
[r26421]
Matthias Braun [Mon, 24 Aug 2009 19:19:25 +0000 (19:19 +0000)]
fix optimistical split
[r26420]
Sebastian Buchwald [Mon, 24 Aug 2009 19:17:56 +0000 (19:17 +0000)]
Fixed more doxygen warnings and typos.
[r26419]
Sebastian Buchwald [Mon, 24 Aug 2009 16:50:07 +0000 (16:50 +0000)]
Added missing parameter documentation.
[r26416]
Sebastian Buchwald [Mon, 24 Aug 2009 15:15:36 +0000 (15:15 +0000)]
Use @version tag
[r26415]
Sebastian Buchwald [Mon, 24 Aug 2009 15:06:31 +0000 (15:06 +0000)]
@note instead of @Note
[r26414]
Sebastian Buchwald [Mon, 24 Aug 2009 14:55:12 +0000 (14:55 +0000)]
Use @p to refer parameters.
[r26413]
Matthias Braun [Mon, 24 Aug 2009 14:54:01 +0000 (14:54 +0000)]
add missing NL to generated file
[r26412]
Matthias Braun [Mon, 24 Aug 2009 14:53:32 +0000 (14:53 +0000)]
fix comment
[r26411]
Sebastian Buchwald [Mon, 24 Aug 2009 14:48:54 +0000 (14:48 +0000)]
Removed superfluous comment.
[r26410]
Sebastian Buchwald [Mon, 24 Aug 2009 14:43:32 +0000 (14:43 +0000)]
Moved file description.
[r26409]
Sebastian Buchwald [Mon, 24 Aug 2009 14:32:39 +0000 (14:32 +0000)]
Summary is not a doxygen tag
[r26408]
Sebastian Buchwald [Mon, 24 Aug 2009 14:31:26 +0000 (14:31 +0000)]
Summary is not a doxygen tag
[r26407]
Matthias Braun [Mon, 24 Aug 2009 14:18:03 +0000 (14:18 +0000)]
- First version of optimistic splitting
- Local rule to not propagate preferences on should_be_same for non-dying values
- Don't prefer phi-inputs for blocks which are not assigned yet
[r26406]
Matthias Braun [Mon, 24 Aug 2009 14:16:25 +0000 (14:16 +0000)]
fix daemel spiller accessing flags of Proj nodes
[r26405]
Sebastian Buchwald [Mon, 24 Aug 2009 14:14:46 +0000 (14:14 +0000)]
typo
[r26404]
Sebastian Buchwald [Mon, 24 Aug 2009 14:03:39 +0000 (14:03 +0000)]
typo
[r26402]
Sebastian Buchwald [Mon, 24 Aug 2009 13:23:31 +0000 (13:23 +0000)]
typo
[r26401]
Michael Beck [Sun, 23 Aug 2009 02:59:08 +0000 (02:59 +0000)]
- add missing prototype
- fixed pass number
[r26397]
Michael Beck [Sun, 23 Aug 2009 02:27:49 +0000 (02:27 +0000)]
- fixed typo
[r26396]
Michael Beck [Sun, 23 Aug 2009 01:59:23 +0000 (01:59 +0000)]
- fixed pass manager
- add more passes
[r26395]
Matthias Braun [Thu, 20 Aug 2009 13:34:44 +0000 (13:34 +0000)]
a first try to propagate phi preferences upwards
[r26388]
Michael Beck [Thu, 20 Aug 2009 06:43:03 +0000 (06:43 +0000)]
Add passes for inlining, private methods.
[r26387]
Christoph Mallon [Wed, 19 Aug 2009 08:48:15 +0000 (08:48 +0000)]
Next iteration for resolving warnings.
[r26385]
Christoph Mallon [Wed, 19 Aug 2009 08:41:05 +0000 (08:41 +0000)]
Remove ununsed parameter.
[r26384]
Christoph Mallon [Wed, 19 Aug 2009 08:31:48 +0000 (08:31 +0000)]
Remove the pointless function firm_init_hooks(). Its only purpose seems to be to generate a warning on 64bit architectures.
[r26382]
Christoph Mallon [Wed, 19 Aug 2009 08:22:51 +0000 (08:22 +0000)]
Undo r26380, another copy of the comment is still present where struct ir_prog is defined.
[r26381]
Christoph Mallon [Wed, 19 Aug 2009 08:18:50 +0000 (08:18 +0000)]
Restore comment, which was lost in r26362.
[r26380]
Christoph Mallon [Wed, 19 Aug 2009 08:03:06 +0000 (08:03 +0000)]
Correct comments (indentation, typos).
[r26379]
Christoph Mallon [Wed, 19 Aug 2009 08:02:02 +0000 (08:02 +0000)]
Use correct return type (void) for pass wrapper callbacks.
[r26378]
Sebastian Buchwald [Tue, 18 Aug 2009 13:58:48 +0000 (13:58 +0000)]
typos
[r26377]
Michael Beck [Mon, 17 Aug 2009 22:58:24 +0000 (22:58 +0000)]
- add more pass constructors
[r26376]
Michael Beck [Mon, 17 Aug 2009 21:57:39 +0000 (21:57 +0000)]
- properties changed
[r26375]
Michael Beck [Mon, 17 Aug 2009 21:53:48 +0000 (21:53 +0000)]
- moved pass constructors from irtools to irpass
- add an irg_verify_pass()
[r26374]
Matthias Braun [Mon, 17 Aug 2009 08:23:02 +0000 (08:23 +0000)]
benewalloc: more special casing of unknowns as phi-inputs needed
[r26371]
Matthias Braun [Mon, 17 Aug 2009 08:17:54 +0000 (08:17 +0000)]
benewalloc: fix unknowns being used at phi inputs
[r26370]
Matthias Braun [Mon, 17 Aug 2009 08:11:04 +0000 (08:11 +0000)]
benewalloc: fix assert hitting when dying value was used at 2 inputs
[r26369]
Matthias Braun [Mon, 17 Aug 2009 08:06:08 +0000 (08:06 +0000)]
generally rewire inputs before enforce_constraints, this fixes more bugs and makes the fixes from last commit easier
[r26368]
Matthias Braun [Mon, 17 Aug 2009 07:44:45 +0000 (07:44 +0000)]
fix a few errors and warnings in the new pass code; improve some comments
[r26367]
Michael Beck [Mon, 17 Aug 2009 00:19:59 +0000 (00:19 +0000)]
- removed verify and dump parameters from passes
- add more passes
[r26366]
Matthias Braun [Sun, 16 Aug 2009 22:23:59 +0000 (22:23 +0000)]
benewalloc: fix enforce_constraints sometimes looking at the original value instead of the current copy of a value
[r26365]
Matthias Braun [Sun, 16 Aug 2009 20:15:09 +0000 (20:15 +0000)]
fix output constraints not always being respected
[r26364]
Matthias Braun [Sun, 16 Aug 2009 19:36:25 +0000 (19:36 +0000)]
cleanup and fix permutate_values (3-cycles and values being used 2 times with 1 being a fixpoint were broken)
[r26363]
Matthias Braun [Sun, 16 Aug 2009 17:31:05 +0000 (17:31 +0000)]
fix double typedef of ir_prog
[r26362]
Michael Beck [Sun, 16 Aug 2009 13:19:09 +0000 (13:19 +0000)]
- graph passes can be added to prog managers now
- more passes implemented
- small fixes
[r26356]
Michael Beck [Sun, 16 Aug 2009 03:48:44 +0000 (03:48 +0000)]
- add more passes
[r26351]
Michael Beck [Sun, 16 Aug 2009 03:20:04 +0000 (03:20 +0000)]
- Put typical case of pass construction into irtools
- add more passes
[r26350]
Michael Beck [Sun, 16 Aug 2009 02:06:00 +0000 (02:06 +0000)]
- removed C99 features
- typos fixed
[r26349]
Michael Beck [Sun, 16 Aug 2009 01:47:41 +0000 (01:47 +0000)]
- add pass for optimize_graph_df()
[r26348]
Michael Beck [Sun, 16 Aug 2009 01:34:39 +0000 (01:34 +0000)]
- removed useless spaces
[r26347]
Michael Beck [Sun, 16 Aug 2009 01:33:42 +0000 (01:33 +0000)]
- add pass for combo()
- fixed pass generator for lower_intrinsics
- add irpass.h to firm.h header
[r26346]
Michael Beck [Sun, 16 Aug 2009 01:09:11 +0000 (01:09 +0000)]
- add pass for lower_intrinsics()
[r26345]
Michael Beck [Sun, 16 Aug 2009 01:06:37 +0000 (01:06 +0000)]
- implemented a pass manager, so optimizations could be added in advance to "a pass" and run an once as a pipeline
- two managers yet: graph manager runs passes on all graphs of an irp, prog manager runs passes on all irp's (currently only one)
[r26344]
Matthias Braun [Fri, 14 Aug 2009 21:15:29 +0000 (21:15 +0000)]
free values again if we know we don't need them anymore
[r26343]
Matthias Braun [Fri, 14 Aug 2009 20:48:31 +0000 (20:48 +0000)]
benewalloc: fix live-in values without phis not getting set to their copies
[r26342]
Matthias Braun [Fri, 14 Aug 2009 20:31:52 +0000 (20:31 +0000)]
fix more bugs in new allocator
[r26341]
Matthias Braun [Fri, 14 Aug 2009 20:31:15 +0000 (20:31 +0000)]
fix block message in register allocator verifier
[r26340]
Christoph Mallon [Fri, 14 Aug 2009 18:13:07 +0000 (18:13 +0000)]
Do not allocate backend info for Projs. Their tuple hold all info and asking the Projs is plain wrong.
[r26337]
Christoph Mallon [Fri, 14 Aug 2009 18:09:32 +0000 (18:09 +0000)]
Skip projs before getting backend flags.
[r26336]
Matthias Braun [Fri, 14 Aug 2009 13:16:29 +0000 (13:16 +0000)]
fix a bug in constraint enforcement; improve phi handling and phi0 construction (still not finished)
[r26335]
Matthias Braun [Fri, 14 Aug 2009 08:39:05 +0000 (08:39 +0000)]
benewalloc: cleanups; dump intermediate results; rework copy tracking logic; started working on SSA construction
[r26334]
Matthias Braun [Thu, 13 Aug 2009 10:26:49 +0000 (10:26 +0000)]
- rework backend node dumping; add a dumper for Phi nodes
- make phi nodes use backend_info instead of phi_handler hashmaps
[r26332]
Christoph Mallon [Wed, 12 Aug 2009 17:36:19 +0000 (17:36 +0000)]
Minor corrections.
[r26331]
Christoph Mallon [Wed, 12 Aug 2009 11:59:03 +0000 (11:59 +0000)]
Remove unnecessary #include "phiclass.h".
[r26330]
Matthias Braun [Wed, 12 Aug 2009 09:14:55 +0000 (09:14 +0000)]
fix rbitset_is_empty; put opening brace of functions on an own line
[r26329]
Matthias Braun [Tue, 11 Aug 2009 11:46:32 +0000 (11:46 +0000)]
- implement output constraint enforcement for new register allocator
- rename bespilloptions.* to bespill.* and bespill.* to bespillutil.*
[r26327]
Matthias Braun [Tue, 11 Aug 2009 11:45:44 +0000 (11:45 +0000)]
SwitchJmp doesn't have 1 'none' output
[r26326]
Matthias Braun [Tue, 11 Aug 2009 11:45:18 +0000 (11:45 +0000)]
add rbitsets_have_common function
[r26325]
Matthias Braun [Thu, 6 Aug 2009 16:36:43 +0000 (16:36 +0000)]
fix
[r26321]
Matthias Braun [Thu, 6 Aug 2009 14:49:04 +0000 (14:49 +0000)]
- Rewrite internal backend logic for querying register constraints.
(We have a separate get_input, and get_output callback for now).
This should make the code faster for now and is a first step towards
changing the interface to query register constraints on the mode_T node
itself instead of the Proj nodes.
- Handle middleend node constraints and stuff in benode.c instead of in each
backend
- Remove irn_class_branch we already had is_cfop in the middleend
- Fix a bunch of bugs/problems in the process
[r26320]
Matthias Braun [Wed, 5 Aug 2009 15:16:07 +0000 (15:16 +0000)]
fix read from uninitialized memory
[r26318]
Matthias Braun [Wed, 5 Aug 2009 10:53:46 +0000 (10:53 +0000)]
reorganize backend headers (kill some _t variants in favor of a be_types.h)
[r26317]
Matthias Braun [Tue, 4 Aug 2009 11:36:09 +0000 (11:36 +0000)]
fix register allocation verifier not checking output constraints for mode_T nodes
[r26315]