Quentin Colombet [Wed, 30 Nov 2011 13:26:45 +0000 (14:26 +0100)]
Add a phase before coloring thats split all live variables before each instruction that defines a paired value.
Matthias Braun [Thu, 1 Mar 2012 15:01:09 +0000 (16:01 +0100)]
fix backend Cond/Cmp flag optimization failing for unoptimized code
Matthias Braun [Thu, 1 Mar 2012 14:47:00 +0000 (15:47 +0100)]
iropt: fix direct calls to compute_cmp
- The direct call did not respect the get_opt_constant_folding() flag
Matthias Braun [Thu, 1 Mar 2012 14:46:40 +0000 (15:46 +0100)]
expose get_opt_constant_folding in public API
Sebastian Buchwald [Wed, 29 Feb 2012 13:43:43 +0000 (14:43 +0100)]
Fixed typo.
Christoph Mallon [Mon, 27 Feb 2012 13:11:13 +0000 (14:11 +0100)]
Remove the questionable and unused functions find_value() and r_find_value().
Christoph Mallon [Mon, 27 Feb 2012 13:04:20 +0000 (14:04 +0100)]
Correct comment: The first block in a graph is matured.
Christoph Mallon [Mon, 27 Feb 2012 13:00:43 +0000 (14:00 +0100)]
Correct comments: Remark does not mean what the author thought it means.
Christoph Mallon [Mon, 27 Feb 2012 12:59:54 +0000 (13:59 +0100)]
Correct comments: pos must be < n_loc, not <=.
Christoph Mallon [Mon, 27 Feb 2012 12:58:32 +0000 (13:58 +0100)]
Correct comment: xvcg wants LF, not CR.
Matthias Braun [Sun, 19 Feb 2012 15:55:12 +0000 (16:55 +0100)]
ident: remove id_mangle_entity
the ident module shouldn't have name-mangling policies builtin.
Matthias Braun [Sun, 19 Feb 2012 15:48:52 +0000 (16:48 +0100)]
remove id_decorate_win32_c_fkt
Mangling logic should not be in the ident module, frontends should provide it
(there's also the compilerlib interface for it)
Matthias Braun [Sat, 18 Feb 2012 13:09:03 +0000 (14:09 +0100)]
begnuas: make panic for tls on macho more clear
Matthias Braun [Fri, 17 Feb 2012 15:53:56 +0000 (16:53 +0100)]
ia32: fix and optimize bswap sequence on i386
Matthias Braun [Fri, 17 Feb 2012 15:48:27 +0000 (16:48 +0100)]
lower_dw: fix mode mixups, handle ir_bk_bswap
Christian Helmer [Fri, 17 Feb 2012 13:55:52 +0000 (14:55 +0100)]
New basic gvnpre implementation.
Matthias Braun [Thu, 26 Jan 2012 17:13:44 +0000 (18:13 +0100)]
be: fix phi constraints double width values
Matthias Braun [Thu, 26 Jan 2012 19:11:14 +0000 (20:11 +0100)]
sparc: fix too short Save offsets
We have to perform the stackframe-type alignment adjustments before we
set the immediates of the Save instruction are adjusted.
Matthias Braun [Thu, 26 Jan 2012 17:14:25 +0000 (18:14 +0100)]
sparc: another fix for sparc stack alignment
Matthias Braun [Thu, 26 Jan 2012 18:10:47 +0000 (19:10 +0100)]
sparc: fix float to short conversion
Matthias Braun [Thu, 26 Jan 2012 17:57:18 +0000 (18:57 +0100)]
sparc: fix wrong mode on Div result
Matthias Braun [Thu, 9 Feb 2012 17:00:43 +0000 (18:00 +0100)]
irio: do not leave construction mode too early
(otherwise CSE merges temporary Phi nodes without inputs)
Matthias Braun [Thu, 9 Feb 2012 16:57:26 +0000 (17:57 +0100)]
remove Phi0 concept at some places
Andreas Zwinkau [Fri, 3 Feb 2012 13:56:18 +0000 (14:56 +0100)]
leave -> leaf
One of the green things on plants is a 'leaf'.
A 'leave', would be a vacation.
For the plural of 'leaf', 'leaves' is more common,
but 'leafs' is also correct and more regular.
Matthias Braun [Wed, 11 Jan 2012 18:35:05 +0000 (19:35 +0100)]
sparc: implement float->unsigned conversions
Matthias Braun [Wed, 11 Jan 2012 16:18:22 +0000 (17:18 +0100)]
sparc: respect frame_type alignment
This fixes the case where the stackframe size is not a multiple of the
alignment.
Matthias Braun [Wed, 11 Jan 2012 16:17:26 +0000 (17:17 +0100)]
fix frame_alloc_area not always updating alignment
Andreas Zwinkau [Wed, 18 Jan 2012 15:27:51 +0000 (16:27 +0100)]
condition instead of assert
Andreas Zwinkau [Wed, 18 Jan 2012 15:21:51 +0000 (16:21 +0100)]
condition instead of assert
Matthias Braun [Tue, 10 Jan 2012 12:32:37 +0000 (13:32 +0100)]
sched: do not show first->block schedule edge
Matthias Braun [Tue, 10 Jan 2012 12:32:03 +0000 (13:32 +0100)]
sparc: implement 64bit from/to float conversions
Matthias Braun [Tue, 10 Jan 2012 12:31:16 +0000 (13:31 +0100)]
lower_dw: respect endianess in Conv builtin funcs
Matthias Braun [Tue, 10 Jan 2012 12:10:22 +0000 (13:10 +0100)]
do not cache types in global variables
(or multiple ir_init/ir_finishs will fail)
Matthias Braun [Mon, 9 Jan 2012 13:04:48 +0000 (14:04 +0100)]
sparc: fix wrong reg-width in double->int Conv
Christoph Mallon [Tue, 10 Jan 2012 08:25:59 +0000 (09:25 +0100)]
Ensure that the noreturn function xnomem() does not return.
Christoph Mallon [Tue, 10 Jan 2012 08:28:07 +0000 (09:28 +0100)]
Include <stdio.h> for fputs().
Andreas Zwinkau [Mon, 9 Jan 2012 15:39:07 +0000 (16:39 +0100)]
Fix bug with panic("out of memory")
The panic function might allocate memory via ir_vfprintf, so we must
not use it in the out of memory case. Otherwise we get an infinite loop.
Matthias Braun [Mon, 9 Jan 2012 12:36:54 +0000 (13:36 +0100)]
sparc: Fix constants for double parameter opt
Quentin Colombet [Wed, 30 Nov 2011 13:23:56 +0000 (14:23 +0100)]
Fix compilation error
Sebastian Buchwald [Thu, 29 Dec 2011 19:17:36 +0000 (20:17 +0100)]
Added missing casts.
Sebastian Buchwald [Thu, 29 Dec 2011 18:47:22 +0000 (19:47 +0100)]
Improved architecture auto detection.
Improvements:
- added support for -march=atom
- fixed some assignments of incompatible enum types
- simplified code
Sebastian Buchwald [Wed, 28 Dec 2011 12:33:08 +0000 (13:33 +0100)]
Use constant of appropriate enum type.
Matthias Braun [Wed, 7 Dec 2011 17:56:28 +0000 (18:56 +0100)]
Update revisions/texts/automake for new release
Matthias Braun [Fri, 23 Dec 2011 10:12:56 +0000 (11:12 +0100)]
config.h must be included or visibility stuff fails
Matthias Braun [Fri, 23 Dec 2011 09:59:04 +0000 (10:59 +0100)]
add missing FIRM_API declarations
Matthias Braun [Fri, 23 Dec 2011 09:58:45 +0000 (10:58 +0100)]
fix warnings
Matthias Braun [Thu, 22 Dec 2011 16:05:45 +0000 (17:05 +0100)]
plug memory leaks
Matthias Braun [Wed, 21 Dec 2011 17:16:12 +0000 (18:16 +0100)]
belive: cleanup livness assure/invalidate API
This also plugs liveness related memory leaks
Matthias Braun [Wed, 21 Dec 2011 12:15:50 +0000 (13:15 +0100)]
be: rework op_attr handling
Matthias Braun [Tue, 20 Dec 2011 17:10:43 +0000 (18:10 +0100)]
irlivechk: remove need to pass in a DFS structure
Matthias Braun [Tue, 20 Dec 2011 16:18:25 +0000 (17:18 +0100)]
be: make several "variable" inputs/outputs dynamic
Matthias Braun [Tue, 20 Dec 2011 16:16:03 +0000 (17:16 +0100)]
typerep: freeing a type frees contained entities
Types "own" entities, so they should also free them when they get freed.
Sebastian Buchwald [Wed, 21 Dec 2011 13:12:37 +0000 (14:12 +0100)]
Fixed indentation.
Sebastian Buchwald [Wed, 21 Dec 2011 13:12:17 +0000 (14:12 +0100)]
Fixed wrong enum type.
Sebastian Buchwald [Fri, 16 Dec 2011 12:18:13 +0000 (13:18 +0100)]
Do not generate trailing whitespaces.
Christoph Mallon [Mon, 19 Dec 2011 16:42:41 +0000 (17:42 +0100)]
Correct typos, mostly s/there/their/.
Matthias Braun [Thu, 15 Dec 2011 18:38:06 +0000 (19:38 +0100)]
ia32: free between type in ia32_finish
Matthias Braun [Thu, 15 Dec 2011 16:52:56 +0000 (17:52 +0100)]
make modelist global
It was a member of ir_prog before but not correctly handled.
Matthias Braun [Thu, 15 Dec 2011 16:39:51 +0000 (17:39 +0100)]
perform end/first block mature in libfirm
The first block in a new ir_graph is not an immature block anymore. The
end block is matured in irg_finalize_cons() now (since maturing blocks
twice doesn't hurt this shouldn't break existing code).
Matthias Braun [Thu, 15 Dec 2011 16:13:45 +0000 (17:13 +0100)]
make opcode list global
The opcode list was a member of irprog before which wasn't really
handled consistently. Also make sure opcodes are properly freed at
ir_finish().
Matthias Braun [Thu, 15 Dec 2011 18:18:45 +0000 (19:18 +0100)]
dfs_free forgot to free its obstack
Matthias Braun [Thu, 15 Dec 2011 15:19:45 +0000 (16:19 +0100)]
plug more leaks
Matthias Braun [Thu, 15 Dec 2011 13:58:07 +0000 (14:58 +0100)]
make unique types/entities part of irprog
unknown_type, code_type, none_type, unknown_entity reference are hold in
the irprog now. This makes handling more consistent since now all types
and entities are equally part of irprog.
Matthias Braun [Thu, 15 Dec 2011 13:42:02 +0000 (14:42 +0100)]
link libfirm.so with libm
Matthias Braun [Thu, 15 Dec 2011 13:40:15 +0000 (14:40 +0100)]
add is_unknown_entity(), is_unknown_type(), is_none_type()
Matthias Braun [Mon, 12 Dec 2011 15:27:24 +0000 (16:27 +0100)]
Added missing API docu, improved existing API docu
Now every bit in the public API is documented so we can enable doxygen
warnings for undocumented members.
Matthias Braun [Wed, 14 Dec 2011 17:03:03 +0000 (18:03 +0100)]
remove class_inheritance verifier
Matthias Braun [Wed, 14 Dec 2011 15:37:30 +0000 (16:37 +0100)]
trouts: move add_* functions to private API
Matthias Braun [Wed, 14 Dec 2011 12:24:34 +0000 (13:24 +0100)]
replace pamp_find with pmap_get where possible
Matthias Braun [Wed, 14 Dec 2011 12:08:25 +0000 (13:08 +0100)]
move FIRM_NOTHROW, FIRM_PRINTF to obstack.h header
They are really special cases for obstack_printf, we don't need them for
all of libfirm.
Matthias Braun [Wed, 14 Dec 2011 00:32:17 +0000 (01:32 +0100)]
move edges_node_deleted to private API
Matthias Braun [Tue, 13 Dec 2011 23:25:31 +0000 (00:25 +0100)]
remove deprecated eset
Replace with equivalent pset_ptr stuff
Matthias Braun [Tue, 13 Dec 2011 23:00:11 +0000 (00:00 +0100)]
remove STATS code alternative
Matthias Braun [Tue, 13 Dec 2011 22:57:15 +0000 (23:57 +0100)]
remove unused+unimplemented SET_VRFY()
Matthias Braun [Tue, 13 Dec 2011 22:31:38 +0000 (23:31 +0100)]
move set_entity_irg to private API
Matthias Braun [Tue, 13 Dec 2011 17:32:46 +0000 (18:32 +0100)]
hashptr.h: use inline functions instead of #define
Matthias Braun [Tue, 13 Dec 2011 13:48:04 +0000 (14:48 +0100)]
remove remains of remove opt_polymorphy
Matthias Braun [Tue, 13 Dec 2011 13:33:47 +0000 (14:33 +0100)]
ammend to remove #defines
Matthias Braun [Tue, 13 Dec 2011 13:31:43 +0000 (14:31 +0100)]
typerep: remove unnecessary #defines
Matthias Braun [Tue, 13 Dec 2011 13:28:23 +0000 (14:28 +0100)]
typerep: remove alternative names
Matthias Braun [Mon, 12 Dec 2011 17:55:41 +0000 (18:55 +0100)]
remove unused exception region numbers
Matthias Braun [Mon, 12 Dec 2011 18:45:12 +0000 (19:45 +0100)]
Move current_ir_graph from ir_graph to ir_cons
It should only be used by construction algorithms
Matthias Braun [Mon, 12 Dec 2011 17:33:43 +0000 (18:33 +0100)]
avoid unnecessary #define in header
Matthias Braun [Mon, 12 Dec 2011 17:11:59 +0000 (18:11 +0100)]
irdom: move some functions to private API
Matthias Braun [Mon, 12 Dec 2011 17:55:58 +0000 (18:55 +0100)]
remove unnecessary comments before functions
public functions are already documented in their headers, no need to
repeat the comment at the definition site.
Matthias Braun [Mon, 12 Dec 2011 17:28:35 +0000 (18:28 +0100)]
remove more pointless end-brace comments
Matthias Braun [Mon, 12 Dec 2011 15:55:02 +0000 (16:55 +0100)]
remove unused PDEQ_VRFY
Matthias Braun [Mon, 12 Dec 2011 15:35:12 +0000 (16:35 +0100)]
move iterator/fourcc to private API
Matthias Braun [Mon, 12 Dec 2011 14:58:40 +0000 (15:58 +0100)]
Remove .*_ptr variants of firm-types
Define them in your own project if you must use them.
Matthias Braun [Mon, 12 Dec 2011 15:03:51 +0000 (16:03 +0100)]
FIRM_API is for public API
Matthias Braun [Mon, 12 Dec 2011 14:52:48 +0000 (15:52 +0100)]
remove typedefs for already removed types
Matthias Braun [Mon, 12 Dec 2011 14:20:30 +0000 (15:20 +0100)]
remove DEBUG defines from set/pset
They were inconsistent with DEBUG_libfirm and unused
Matthias Braun [Fri, 9 Dec 2011 19:06:11 +0000 (20:06 +0100)]
docu: further improvements
Matthias Braun [Fri, 9 Dec 2011 18:48:47 +0000 (19:48 +0100)]
add documentation make target, fix docu bugs
Matthias Braun [Fri, 9 Dec 2011 17:47:06 +0000 (18:47 +0100)]
Rework API documentation
- Put things into logical groups
- Add cross references from node overview to API docu
Matthias Braun [Fri, 9 Dec 2011 17:45:43 +0000 (18:45 +0100)]
benode: fix be_new_Perm for width!=1
Matthias Braun [Fri, 9 Dec 2011 15:33:53 +0000 (16:33 +0100)]
remove new_.*_defaultProj operations
They're pointless with the new switch representation introduced a while
ago.
Matthias Braun [Thu, 8 Dec 2011 13:39:22 +0000 (14:39 +0100)]
gen_docu: put hrules between nodes, separate flags by commas
Matthias Braun [Thu, 8 Dec 2011 17:05:31 +0000 (18:05 +0100)]
clarify some node comments
Matthias Braun [Wed, 7 Dec 2011 23:03:58 +0000 (00:03 +0100)]
don't change size for spillslots because of align.
Just changing offset of other entities is enough