Sebastian Buchwald [Tue, 17 Apr 2012 16:42:44 +0000 (18:42 +0200)]
Fixed wrong function type.
Matthias Braun [Tue, 17 Apr 2012 16:26:48 +0000 (18:26 +0200)]
ia32: remove pointless downconv skips in gen_Add
this fixes a bug, because match_arguments determines the operations
mode by looking at the passed operands, so they must still have the
original mode and not the mode after a skip_downconv.
Ingmar Wirths [Tue, 17 Apr 2012 12:52:51 +0000 (14:52 +0200)]
Control flow optimization: Merge consecutive blocks.
Merge a block with its only control flow predecessor,
if it contains no phi nodes and the block is the only successor of the predecessor.
Christoph Mallon [Sun, 25 Mar 2012 20:11:19 +0000 (22:11 +0200)]
Turn if (x) assert(y); into assert(!x || y);
Christoph Mallon [Sun, 25 Mar 2012 20:09:18 +0000 (22:09 +0200)]
Assert that [gs]et_{,r_}cur_block() are only called in phase_building.
Christoph Mallon [Thu, 15 Mar 2012 13:44:52 +0000 (14:44 +0100)]
Update/Correct documentation of kill_node().
Sebastian Buchwald [Sun, 25 Mar 2012 18:34:22 +0000 (20:34 +0200)]
Code placement cannot handle unreachable code.
Matthias Braun [Wed, 14 Mar 2012 12:16:34 +0000 (13:16 +0100)]
fix sparc backend restore node
Christoph Mallon [Tue, 13 Mar 2012 13:53:19 +0000 (14:53 +0100)]
Reduce code duplication.
Matthias Braun [Mon, 12 Mar 2012 18:31:12 +0000 (19:31 +0100)]
support for variable sized compound/array types
This adds support for C99/gcc style compound types where the last
element is an array of unspecified size. The compound size is the
minimum size (assuming the array has no elements), or is calculated
by the size of an initializer.
Christoph Mallon [Fri, 9 Mar 2012 12:32:11 +0000 (13:32 +0100)]
Add missing FIRM_API.
Christoph Mallon [Fri, 9 Mar 2012 09:51:58 +0000 (10:51 +0100)]
Fix typo in comment.
Christoph Mallon [Fri, 9 Mar 2012 09:46:31 +0000 (10:46 +0100)]
Remove ia32_code_gen_config_t::use_ftst.
ftst is always available and faster than fldz+fucom.
Christoph Mallon [Fri, 9 Mar 2012 09:37:41 +0000 (10:37 +0100)]
Simplify code to relax the condition in get_flags_node().
Christoph Mallon [Tue, 6 Mar 2012 13:38:52 +0000 (14:38 +0100)]
Move a set_ia32_commutative() into the branch where it belongs.
The ftst from the other branch cannot be commutative (it only has 1 operand).
Christoph Mallon [Wed, 29 Feb 2012 13:26:52 +0000 (14:26 +0100)]
Remove stale comment and simplify the code accordingly.
Matthias Braun [Tue, 6 Mar 2012 11:47:31 +0000 (12:47 +0100)]
beabi: remove a bunch of unused/deprecated flags
Matthias Braun [Tue, 7 Feb 2012 11:51:39 +0000 (12:51 +0100)]
Route stackpointer through Restore node
(This avoids effects where compilation fails because of an unused
stackpointer)
Matthias Braun [Thu, 2 Feb 2012 10:06:31 +0000 (11:06 +0100)]
update doc Makefile targets
Matthias Braun [Mon, 30 Jan 2012 18:05:39 +0000 (19:05 +0100)]
lower_dw: don't fail on Tuple-nodes
Matthias Braun [Thu, 26 Jan 2012 17:37:05 +0000 (18:37 +0100)]
becopyilp: fix search for aligned free color
Matthias Braun [Tue, 24 Jan 2012 16:47:36 +0000 (17:47 +0100)]
simplify splitting for double-width values
We regard them as "constraints" now, so the existing code inserts splits
for these nodes. This simplifies the code as we don't have to check for
already existing Permutations anymore.
Matthias Braun [Tue, 10 Jan 2012 12:59:20 +0000 (13:59 +0100)]
Clarify interpretation of limited for wide values
Quentin Colombet [Mon, 12 Dec 2011 11:29:43 +0000 (12:29 +0100)]
Fix the way simplifiable node are colored when alignment is in the game
Quentin Colombet [Fri, 9 Dec 2011 11:46:01 +0000 (12:46 +0100)]
First try to add aliasing support in ilp coalescer
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