libfirm
12 years agoUse constant of appropriate enum type.
Sebastian Buchwald [Wed, 28 Dec 2011 12:33:08 +0000 (13:33 +0100)]
Use constant of appropriate enum type.

12 years agoUpdate revisions/texts/automake for new release
Matthias Braun [Wed, 7 Dec 2011 17:56:28 +0000 (18:56 +0100)]
Update revisions/texts/automake for new release

12 years agoconfig.h must be included or visibility stuff fails
Matthias Braun [Fri, 23 Dec 2011 10:12:56 +0000 (11:12 +0100)]
config.h must be included or visibility stuff fails

12 years agoadd missing FIRM_API declarations
Matthias Braun [Fri, 23 Dec 2011 09:59:04 +0000 (10:59 +0100)]
add missing FIRM_API declarations

12 years agofix warnings
Matthias Braun [Fri, 23 Dec 2011 09:58:45 +0000 (10:58 +0100)]
fix warnings

12 years agoplug memory leaks
Matthias Braun [Thu, 22 Dec 2011 16:05:45 +0000 (17:05 +0100)]
plug memory leaks

12 years agobelive: cleanup livness assure/invalidate API
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

12 years agobe: rework op_attr handling
Matthias Braun [Wed, 21 Dec 2011 12:15:50 +0000 (13:15 +0100)]
be: rework op_attr handling

12 years agoirlivechk: remove need to pass in a DFS structure
Matthias Braun [Tue, 20 Dec 2011 17:10:43 +0000 (18:10 +0100)]
irlivechk: remove need to pass in a DFS structure

12 years agobe: make several "variable" inputs/outputs dynamic
Matthias Braun [Tue, 20 Dec 2011 16:18:25 +0000 (17:18 +0100)]
be: make several "variable" inputs/outputs dynamic

12 years agotyperep: freeing a type frees contained entities
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.

12 years agoFixed indentation.
Sebastian Buchwald [Wed, 21 Dec 2011 13:12:37 +0000 (14:12 +0100)]
Fixed indentation.

12 years agoFixed wrong enum type.
Sebastian Buchwald [Wed, 21 Dec 2011 13:12:17 +0000 (14:12 +0100)]
Fixed wrong enum type.

12 years agoDo not generate trailing whitespaces.
Sebastian Buchwald [Fri, 16 Dec 2011 12:18:13 +0000 (13:18 +0100)]
Do not generate trailing whitespaces.

12 years agoCorrect typos, mostly s/there/their/.
Christoph Mallon [Mon, 19 Dec 2011 16:42:41 +0000 (17:42 +0100)]
Correct typos, mostly s/there/their/.

12 years agoia32: free between type in ia32_finish
Matthias Braun [Thu, 15 Dec 2011 18:38:06 +0000 (19:38 +0100)]
ia32: free between type in ia32_finish

12 years agomake modelist global
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.

12 years agoperform end/first block mature in libfirm
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).

12 years agomake opcode list global
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().

12 years agodfs_free forgot to free its obstack
Matthias Braun [Thu, 15 Dec 2011 18:18:45 +0000 (19:18 +0100)]
dfs_free forgot to free its obstack

12 years agoplug more leaks
Matthias Braun [Thu, 15 Dec 2011 15:19:45 +0000 (16:19 +0100)]
plug more leaks

12 years agomake unique types/entities part of irprog
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.

12 years agolink libfirm.so with libm
Matthias Braun [Thu, 15 Dec 2011 13:42:02 +0000 (14:42 +0100)]
link libfirm.so with libm

12 years agoadd is_unknown_entity(), is_unknown_type(), is_none_type()
Matthias Braun [Thu, 15 Dec 2011 13:40:15 +0000 (14:40 +0100)]
add is_unknown_entity(), is_unknown_type(), is_none_type()

12 years agoAdded missing API docu, improved existing API docu
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.

12 years agoremove class_inheritance verifier
Matthias Braun [Wed, 14 Dec 2011 17:03:03 +0000 (18:03 +0100)]
remove class_inheritance verifier

12 years agotrouts: move add_* functions to private API
Matthias Braun [Wed, 14 Dec 2011 15:37:30 +0000 (16:37 +0100)]
trouts: move add_* functions to private API

12 years agoreplace pamp_find with pmap_get where possible
Matthias Braun [Wed, 14 Dec 2011 12:24:34 +0000 (13:24 +0100)]
replace pamp_find with pmap_get where possible

12 years agomove FIRM_NOTHROW, FIRM_PRINTF to obstack.h header
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.

12 years agomove edges_node_deleted to private API
Matthias Braun [Wed, 14 Dec 2011 00:32:17 +0000 (01:32 +0100)]
move edges_node_deleted to private API

12 years agoremove deprecated eset
Matthias Braun [Tue, 13 Dec 2011 23:25:31 +0000 (00:25 +0100)]
remove deprecated eset

Replace with equivalent pset_ptr stuff

12 years agoremove STATS code alternative
Matthias Braun [Tue, 13 Dec 2011 23:00:11 +0000 (00:00 +0100)]
remove STATS code alternative

12 years agoremove unused+unimplemented SET_VRFY()
Matthias Braun [Tue, 13 Dec 2011 22:57:15 +0000 (23:57 +0100)]
remove unused+unimplemented SET_VRFY()

12 years agomove set_entity_irg to private API
Matthias Braun [Tue, 13 Dec 2011 22:31:38 +0000 (23:31 +0100)]
move set_entity_irg to private API

12 years agohashptr.h: use inline functions instead of #define
Matthias Braun [Tue, 13 Dec 2011 17:32:46 +0000 (18:32 +0100)]
hashptr.h: use inline functions instead of #define

12 years agoremove remains of remove opt_polymorphy
Matthias Braun [Tue, 13 Dec 2011 13:48:04 +0000 (14:48 +0100)]
remove remains of remove opt_polymorphy

12 years agoammend to remove #defines
Matthias Braun [Tue, 13 Dec 2011 13:33:47 +0000 (14:33 +0100)]
ammend to remove #defines

12 years agotyperep: remove unnecessary #defines
Matthias Braun [Tue, 13 Dec 2011 13:31:43 +0000 (14:31 +0100)]
typerep: remove unnecessary #defines

12 years agotyperep: remove alternative names
Matthias Braun [Tue, 13 Dec 2011 13:28:23 +0000 (14:28 +0100)]
typerep: remove alternative names

12 years agoremove unused exception region numbers
Matthias Braun [Mon, 12 Dec 2011 17:55:41 +0000 (18:55 +0100)]
remove unused exception region numbers

12 years agoMove current_ir_graph from ir_graph to ir_cons
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

12 years agoavoid unnecessary #define in header
Matthias Braun [Mon, 12 Dec 2011 17:33:43 +0000 (18:33 +0100)]
avoid unnecessary #define in header

12 years agoirdom: move some functions to private API
Matthias Braun [Mon, 12 Dec 2011 17:11:59 +0000 (18:11 +0100)]
irdom: move some functions to private API

12 years agoremove unnecessary comments before functions
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.

12 years agoremove more pointless end-brace comments
Matthias Braun [Mon, 12 Dec 2011 17:28:35 +0000 (18:28 +0100)]
remove more pointless end-brace comments

12 years agoremove unused PDEQ_VRFY
Matthias Braun [Mon, 12 Dec 2011 15:55:02 +0000 (16:55 +0100)]
remove unused PDEQ_VRFY

12 years agomove iterator/fourcc to private API
Matthias Braun [Mon, 12 Dec 2011 15:35:12 +0000 (16:35 +0100)]
move iterator/fourcc to private API

12 years agoRemove .*_ptr variants of firm-types
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.

12 years agoFIRM_API is for public API
Matthias Braun [Mon, 12 Dec 2011 15:03:51 +0000 (16:03 +0100)]
FIRM_API is for public API

12 years agoremove typedefs for already removed types
Matthias Braun [Mon, 12 Dec 2011 14:52:48 +0000 (15:52 +0100)]
remove typedefs for already removed types

12 years agoremove DEBUG defines from set/pset
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

12 years agodocu: further improvements
Matthias Braun [Fri, 9 Dec 2011 19:06:11 +0000 (20:06 +0100)]
docu: further improvements

12 years agoadd documentation make target, fix docu bugs
Matthias Braun [Fri, 9 Dec 2011 18:48:47 +0000 (19:48 +0100)]
add documentation make target, fix docu bugs

12 years agoRework API documentation
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

12 years agobenode: fix be_new_Perm for width!=1
Matthias Braun [Fri, 9 Dec 2011 17:45:43 +0000 (18:45 +0100)]
benode: fix be_new_Perm for width!=1

12 years agoremove new_.*_defaultProj operations
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.

12 years agogen_docu: put hrules between nodes, separate flags by commas
Matthias Braun [Thu, 8 Dec 2011 13:39:22 +0000 (14:39 +0100)]
gen_docu: put hrules between nodes, separate flags by commas

12 years agoclarify some node comments
Matthias Braun [Thu, 8 Dec 2011 17:05:31 +0000 (18:05 +0100)]
clarify some node comments

12 years agodon't change size for spillslots because of align.
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

12 years agofix warnings in newer perls
Matthias Braun [Wed, 7 Dec 2011 22:35:46 +0000 (23:35 +0100)]
fix warnings in newer perls

12 years agocorrectly implement memop handling
Matthias Braun [Wed, 7 Dec 2011 22:26:39 +0000 (23:26 +0100)]
correctly implement memop handling

memops are nodes that have memory inputs, you can generically query them
for their memory input. We can also get rid of get_fragile_op_mem in
favor of get_memop_mem.

12 years agobestabs: add missing type kinds
Matthias Braun [Wed, 7 Dec 2011 21:43:02 +0000 (22:43 +0100)]
bestabs: add missing type kinds

12 years agopartially revert 2e9fdf8841de40f008697ba8bf711fa3f3f2c0e8
Matthias Braun [Wed, 7 Dec 2011 17:41:56 +0000 (18:41 +0100)]
partially revert 2e9fdf8841de40f008697ba8bf711fa3f3f2c0e8

(releases don't have firm_revision.h so we need to check for
HAVE_FIRM_REVISION_H define)

12 years agoavoid macros in irdump interface
Matthias Braun [Wed, 7 Dec 2011 16:17:55 +0000 (17:17 +0100)]
avoid macros in irdump interface

12 years agoFixed stupid typo.
Manuel Mohr [Wed, 7 Dec 2011 16:45:34 +0000 (17:45 +0100)]
Fixed stupid typo.

12 years agoPrevent segfault with -bprofilegenerate=true for empty input files.
Manuel Mohr [Wed, 7 Dec 2011 16:30:29 +0000 (17:30 +0100)]
Prevent segfault with -bprofilegenerate=true for empty input files.

12 years agoClarify the documentation of the Not node.
Christoph Mallon [Wed, 7 Dec 2011 15:59:10 +0000 (16:59 +0100)]
Clarify the documentation of the Not node.

12 years agoUse ARRAY_SIZE(x) and size_t instead of sizeof(x) / sizeof(*x) and int.
Christoph Mallon [Tue, 6 Dec 2011 13:11:24 +0000 (14:11 +0100)]
Use ARRAY_SIZE(x) and size_t instead of sizeof(x) / sizeof(*x) and int.

12 years agoTurn if cascade into switch.
Christoph Mallon [Tue, 6 Dec 2011 08:31:34 +0000 (09:31 +0100)]
Turn if cascade into switch.

12 years agoRemove the unused function arm_get_fpa_imm_name().
Christoph Mallon [Tue, 6 Dec 2011 08:31:06 +0000 (09:31 +0100)]
Remove the unused function arm_get_fpa_imm_name().

12 years agoRemoved superfluous assignment.
Sebastian Buchwald [Mon, 5 Dec 2011 12:01:48 +0000 (13:01 +0100)]
Removed superfluous assignment.

12 years agopbqp: add pbqp_ prefix to fix nameclashes
Matthias Braun [Mon, 5 Dec 2011 12:38:50 +0000 (13:38 +0100)]
pbqp: add pbqp_ prefix to fix nameclashes

12 years agoWrite and read FIRM profiling information in little-endian format.
Manuel Mohr [Mon, 5 Dec 2011 11:59:35 +0000 (12:59 +0100)]
Write and read FIRM profiling information in little-endian format.

12 years agobecopyilp: fix problems with ignore registers
Matthias Braun [Mon, 5 Dec 2011 11:48:16 +0000 (12:48 +0100)]
becopyilp: fix problems with ignore registers

12 years agodon't use get_irg_dump_name outside dumpers
Matthias Braun [Fri, 2 Dec 2011 20:42:25 +0000 (21:42 +0100)]
don't use get_irg_dump_name outside dumpers

12 years agobelive: move dumper to bedump, checker to beverify
Matthias Braun [Fri, 2 Dec 2011 20:41:26 +0000 (21:41 +0100)]
belive: move dumper to bedump, checker to beverify

12 years agointroduce bedump
Matthias Braun [Fri, 2 Dec 2011 18:13:33 +0000 (19:13 +0100)]
introduce bedump

Moves code from ifg dot-file dumpers around and produces .vcg graphs
now (ycomp layout is way better than xdot)

12 years agoirdump: dump interfaces take const ir_node* now
Matthias Braun [Fri, 2 Dec 2011 14:42:58 +0000 (15:42 +0100)]
irdump: dump interfaces take const ir_node* now

12 years agobecopyilp: code cleanups
Matthias Braun [Fri, 2 Dec 2011 12:38:46 +0000 (13:38 +0100)]
becopyilp: code cleanups

(no changes in functionality)

12 years agoAdd -c to ar to remove a diagnostic, when the archive is created.
Christoph Mallon [Fri, 2 Dec 2011 11:03:47 +0000 (12:03 +0100)]
Add -c to ar to remove a diagnostic, when the archive is created.

12 years agoRemove duplicate flags for ar.
Christoph Mallon [Fri, 2 Dec 2011 11:03:55 +0000 (12:03 +0100)]
Remove duplicate flags for ar.

12 years agoRemove redundant ranlib after ar.
Christoph Mallon [Fri, 2 Dec 2011 10:21:20 +0000 (11:21 +0100)]
Remove redundant ranlib after ar.

12 years agobecopyilp: fix size_reduction code
Matthias Braun [Thu, 1 Dec 2011 19:14:25 +0000 (20:14 +0100)]
becopyilp: fix size_reduction code

Fix the size reduction stuff which happily assigned non-allocatable
registers. It worked by chance on x86 as all non-allocatable registers
come last.

12 years agocopyopt: miscellaneous code cleanups
Matthias Braun [Thu, 1 Dec 2011 18:50:46 +0000 (19:50 +0100)]
copyopt: miscellaneous code cleanups

12 years agolpp_gurobi:disable log to console unless requested
Matthias Braun [Thu, 1 Dec 2011 18:04:36 +0000 (19:04 +0100)]
lpp_gurobi:disable log to console unless requested

12 years agolpp_gurobi: fix timelimit, do not abort on missing ObjBound
Matthias Braun [Thu, 1 Dec 2011 17:00:54 +0000 (18:00 +0100)]
lpp_gurobi: fix timelimit, do not abort on missing ObjBound

12 years agobecopyilp2: Remove unused timelimit
Matthias Braun [Thu, 1 Dec 2011 16:31:23 +0000 (17:31 +0100)]
becopyilp2: Remove unused timelimit

(There is a timelimit option in becopyilp anyway)

12 years agosparc: optimize float constants function paramters
Matthias Braun [Tue, 29 Nov 2011 17:29:36 +0000 (18:29 +0100)]
sparc: optimize float constants function paramters

(They are passed in integer registers, so we can immediately create
integer constants)

12 years agofix typo
Matthias Braun [Mon, 28 Nov 2011 17:53:39 +0000 (18:53 +0100)]
fix typo

12 years agooutput documentation to file on request
Matthias Braun [Thu, 24 Nov 2011 18:55:42 +0000 (19:55 +0100)]
output documentation to file on request

12 years agoUpdate list of files generated for irio.
Christoph Mallon [Thu, 24 Nov 2011 17:16:45 +0000 (18:16 +0100)]
Update list of files generated for irio.

12 years agofix is_init_string
Matthias Braun [Fri, 18 Nov 2011 16:34:08 +0000 (17:34 +0100)]
fix is_init_string

12 years agofix ir_finish, freeing of irps/irgs
Matthias Braun [Fri, 18 Nov 2011 13:46:47 +0000 (14:46 +0100)]
fix ir_finish, freeing of irps/irgs

12 years agoremove opt_ldst_only_null_ptr_exception
Matthias Braun [Fri, 18 Nov 2011 13:24:12 +0000 (14:24 +0100)]
remove opt_ldst_only_null_ptr_exception

We just define that the only reason a Load/Store node can use the
exception edge is a NULL pointer. Misaligned Load/Store is a problem for
low-level languages which don't use exception edges anyway.

12 years agoremove sel_based_null_check flag
Matthias Braun [Fri, 18 Nov 2011 13:22:09 +0000 (14:22 +0100)]
remove sel_based_null_check flag

We simply always assume that Sel can only return a null pointer if
its input is a null pointer.

12 years agoremove opt_polymorphy
Matthias Braun [Fri, 18 Nov 2011 13:18:55 +0000 (14:18 +0100)]
remove opt_polymorphy

this is part of the initiative to move object-orientation support stuff
out of libfirm into liboo

12 years agoAvoid using uninitialized edge_info->list_heads.
Andreas Seltenreich [Fri, 18 Nov 2011 10:56:17 +0000 (11:56 +0100)]
Avoid using uninitialized edge_info->list_heads.

build_edges_walker calls get_block_n on block preds, possibly consing
and hashing a node which init_lh_walker couldn't reach via
irg_walk_anchors.

This fixes a crash I see when compiling Postgres.

12 years agoremove symconst_type_tag
Matthias Braun [Thu, 17 Nov 2011 17:06:53 +0000 (18:06 +0100)]
remove symconst_type_tag

12 years agoirio: complete rewrite
Matthias Braun [Wed, 16 Nov 2011 18:53:52 +0000 (19:53 +0100)]
irio: complete rewrite

This should fix all known bugs, make the code easier to read and more
robust.

12 years agoinline: we can't inline blocks with entities
Matthias Braun [Thu, 17 Nov 2011 16:31:26 +0000 (17:31 +0100)]
inline: we can't inline blocks with entities