libfirm
13 years agomake Makefile robust against deleted headers
Matthias Braun [Wed, 1 Dec 2010 13:55:01 +0000 (13:55 +0000)]
make Makefile robust against deleted headers

[r28176]

13 years agocallback typedef not needed anymore
Matthias Braun [Wed, 1 Dec 2010 13:25:41 +0000 (13:25 +0000)]
callback typedef not needed anymore

[r28175]

13 years agobe_lower_for_target is now a simple function in the public API
Matthias Braun [Wed, 1 Dec 2010 13:11:29 +0000 (13:11 +0000)]
be_lower_for_target is now a simple function in the public API

[r28172]

13 years agouse a 'low-tech' solution for emitting 8- and 16-bit register names. This also fixes...
Matthias Braun [Wed, 1 Dec 2010 10:32:05 +0000 (10:32 +0000)]
use a 'low-tech' solution for emitting 8- and 16-bit register names. This also fixes a recently introduced bug in ia32_build_8bit_reg_map_high

[r28168]

13 years agocreate new_tarval_from_long_double function and change argument of new_tarval_from_do...
Matthias Braun [Wed, 1 Dec 2010 10:32:03 +0000 (10:32 +0000)]
create new_tarval_from_long_double function and change argument of new_tarval_from_double to double - so bindings can get away with C89 types only

[r28167]

13 years agoFixed new_d_defaultProj(), handle Bad predecessor.
Michael Beck [Mon, 29 Nov 2010 21:00:50 +0000 (21:00 +0000)]
Fixed new_d_defaultProj(), handle Bad predecessor.

[r28166]

13 years agoUpdated and fixed "native" support.
Michael Beck [Fri, 26 Nov 2010 02:17:57 +0000 (02:17 +0000)]
Updated and fixed "native" support.

- add support for MSVC compiler
- fixed cpuid toggle code
- fixed wrong ussage of feature mask register
- detect atom, core2, K10
- removed panics ...

Probably the whole detection code should be either moved into the frontend
OR at least into some extra file, so it can be reused for the amd64 and the
upcoming new x86 backends.

[r28160]

13 years agoCode cleanup
Andreas Zwinkau [Thu, 25 Nov 2010 14:03:43 +0000 (14:03 +0000)]
Code cleanup

Results of review by Mallon

[r28156]

13 years agoAMD autodetection extended
Andreas Zwinkau [Thu, 25 Nov 2010 10:13:03 +0000 (10:13 +0000)]
AMD autodetection extended

[r28155]

13 years agoAdd -march=native parameter
Andreas Zwinkau [Thu, 25 Nov 2010 10:13:02 +0000 (10:13 +0000)]
Add -march=native parameter

[r28154]

13 years agoallow specification of dll-extension
Matthias Braun [Tue, 23 Nov 2010 06:37:01 +0000 (06:37 +0000)]
allow specification of dll-extension

[r28153]

13 years agoremove strange init_once/inited checks from arch_init functions. Calling it twice...
Matthias Braun [Tue, 23 Nov 2010 06:37:00 +0000 (06:37 +0000)]
remove strange init_once/inited checks from arch_init functions. Calling it twice is invalid (and crashs anyway)

[r28152]

13 years agoSimplified code, decrease register pressure, add some doxygen docu.
Michael Beck [Sun, 21 Nov 2010 10:44:47 +0000 (10:44 +0000)]
Simplified code, decrease register pressure, add some doxygen docu.

[r28149]

13 years agoAdd some doxygen docu.
Michael Beck [Sun, 21 Nov 2010 10:44:34 +0000 (10:44 +0000)]
Add some doxygen docu.

[r28148]

13 years agoTurn while loop into do-while, we know it will be executed at least once.
Michael Beck [Sun, 21 Nov 2010 10:25:02 +0000 (10:25 +0000)]
Turn while loop into do-while, we know it will be executed at least once.

[r28147]

13 years agoReplaced pmaps used for 16 and 8bit register names by simple array lookups.
Michael Beck [Fri, 19 Nov 2010 21:57:41 +0000 (21:57 +0000)]
Replaced pmaps used for 16 and 8bit register names by simple array lookups.

[r28146]

13 years agoAdd some doxygen docu.
Michael Beck [Fri, 19 Nov 2010 21:57:24 +0000 (21:57 +0000)]
Add some doxygen docu.

[r28145]

13 years agoPut definition of get_base_sc() into .c file to remove the (non-standard) inline...
Michael Beck [Wed, 17 Nov 2010 23:17:02 +0000 (23:17 +0000)]
Put definition of get_base_sc() into .c file to remove the (non-standard) inline specifier from official header.

Most users of this function are inside teh same c file, so the performance hit is small.

[r28144]

13 years agoFixed indentation of generated code.
Michael Beck [Wed, 17 Nov 2010 23:16:49 +0000 (23:16 +0000)]
Fixed indentation of generated code.

[r28143]

13 years agoUse the same constants for register flags as the ia32 spec.
Michael Beck [Wed, 17 Nov 2010 23:16:37 +0000 (23:16 +0000)]
Use the same constants for register flags as the ia32 spec.

[r28142]

13 years agoadd entity_has_ld_ident function
Matthias Braun [Wed, 17 Nov 2010 12:00:07 +0000 (12:00 +0000)]
add entity_has_ld_ident function

[r28141]

13 years agoFixed windows build: unistd.h is not a portable header ...
Michael Beck [Sun, 14 Nov 2010 00:43:50 +0000 (00:43 +0000)]
Fixed windows build: unistd.h is not a portable header ...

[r28140]

13 years agoPrefix global entities from the ia32 backend with ia32_ to prevent (future) collisitions.
Michael Beck [Sun, 14 Nov 2010 00:38:33 +0000 (00:38 +0000)]
Prefix global entities from the ia32 backend with ia32_ to prevent (future) collisitions.

[r28139]

13 years agoBetter fix for __attibute__ usage, this is a GCC feature.
Michael Beck [Mon, 8 Nov 2010 08:53:35 +0000 (08:53 +0000)]
Better fix for __attibute__ usage, this is a GCC feature.

[r28137]

13 years agoFixed Windows build: Don't use __attribute__ in header files directly ...
Michael Beck [Mon, 8 Nov 2010 08:13:03 +0000 (08:13 +0000)]
Fixed Windows build: Don't use __attribute__ in header files directly ...

[r28136]

13 years agoupdate gitignore
Matthias Braun [Fri, 5 Nov 2010 15:20:36 +0000 (15:20 +0000)]
update gitignore

[r28134]

13 years agoa firm Makefile
Matthias Braun [Fri, 5 Nov 2010 13:25:09 +0000 (13:25 +0000)]
a firm Makefile

[r28133]

13 years agoremove some more strange HAVE_ #ifdefs
Matthias Braun [Fri, 5 Nov 2010 13:25:08 +0000 (13:25 +0000)]
remove some more strange HAVE_ #ifdefs

[r28132]

13 years agoremove obsolete/unused debug stuff in ADTs
Matthias Braun [Fri, 5 Nov 2010 13:25:07 +0000 (13:25 +0000)]
remove obsolete/unused debug stuff in ADTs

[r28131]

13 years agofix for c++ commit
Matthias Braun [Thu, 4 Nov 2010 13:53:41 +0000 (13:53 +0000)]
fix for c++ commit

[r28130]

13 years agocompile as C++ in msvc
Matthias Braun [Thu, 4 Nov 2010 12:15:34 +0000 (12:15 +0000)]
compile as C++ in msvc

[r28128]

13 years agomake firm compilable with a c++ compiler
Matthias Braun [Thu, 4 Nov 2010 12:15:30 +0000 (12:15 +0000)]
make firm compilable with a c++ compiler

[r28127]

13 years agoRemove the unused functions print_firm_kind() and firm_identify_thing().
Matthias Braun [Thu, 4 Nov 2010 12:15:24 +0000 (12:15 +0000)]
Remove the unused functions print_firm_kind() and firm_identify_thing().

[r28126]

13 years agoremove unused seqnumbers modules
Matthias Braun [Thu, 4 Nov 2010 12:15:24 +0000 (12:15 +0000)]
remove unused seqnumbers modules

[r28125]

13 years agoremove set_.*_member type functions, as you can too easily violate the owner <->...
Matthias Braun [Thu, 28 Oct 2010 12:37:54 +0000 (12:37 +0000)]
remove set_.*_member type functions, as you can too easily violate the owner <-> member relationship

[r28120]

13 years agoGit wants to change line endings for those ...
Michael Beck [Wed, 27 Oct 2010 21:48:27 +0000 (21:48 +0000)]
Git wants to change line endings for those ...

[r28119]

13 years agoFixed typo.
Michael Beck [Wed, 27 Oct 2010 21:48:20 +0000 (21:48 +0000)]
Fixed typo.

[r28118]

13 years agolet Bad and NoMem nodes get automatically generated
Matthias Braun [Wed, 13 Oct 2010 14:56:03 +0000 (14:56 +0000)]
let Bad and NoMem nodes get automatically generated

[r28116]

13 years agoia32: fix intrinsics on mac
Matthias Braun [Tue, 12 Oct 2010 22:08:27 +0000 (22:08 +0000)]
ia32: fix intrinsics on mac

[r28111]

13 years agoAPI stripping
Andreas Zwinkau [Tue, 12 Oct 2010 10:35:33 +0000 (10:35 +0000)]
API stripping

All removed functions had no implementation.

[r28105]

13 years agoRemoved API function opt_loopunroll_pass
Andreas Zwinkau [Tue, 12 Oct 2010 10:25:56 +0000 (10:25 +0000)]
Removed API function opt_loopunroll_pass

Implementation already removed before

[r28104]

13 years agocleanup ir_spec and let the script generate Start,End and Sync now
Matthias Braun [Mon, 11 Oct 2010 16:52:36 +0000 (16:52 +0000)]
cleanup ir_spec and let the script generate Start,End and Sync now

[r28097]

13 years agoRemove set_opt_optimize_class_casts declaration from API
Andreas Zwinkau [Mon, 11 Oct 2010 15:00:10 +0000 (15:00 +0000)]
Remove set_opt_optimize_class_casts declaration from API

The implementation was already deleted before

[r28096]

13 years agoUpdate ir_spec for JNA direct-mode in jFirm
Andreas Zwinkau [Mon, 11 Oct 2010 12:56:51 +0000 (12:56 +0000)]
Update ir_spec for JNA direct-mode in jFirm

[r28095]

13 years agomake libfirm work with strings being const char*
Matthias Braun [Mon, 11 Oct 2010 12:02:14 +0000 (12:02 +0000)]
make libfirm work with strings being const char*

[r28090]

13 years agoSmall improvement: lower a double word x << 1 into x + x, saves one instruction on...
Michael Beck [Fri, 8 Oct 2010 21:44:42 +0000 (21:44 +0000)]
Small improvement: lower a double word x << 1 into x + x, saves one instruction on x86 ...

[r28086]

13 years agoAllow 64bit Leas (2 shifts and 1 add)
Michael Beck [Fri, 8 Oct 2010 21:28:23 +0000 (21:28 +0000)]
Allow 64bit Leas (2 shifts and 1 add)

[r28085]

13 years agoWhen lowering a double word shift, always conv the right operand to lower_unsigned...
Michael Beck [Fri, 8 Oct 2010 21:26:23 +0000 (21:26 +0000)]
When lowering a double word shift, always conv the right operand to lower_unsigned mode.

[r28084]

13 years agoExperimental support for double word irarch.
Michael Beck [Fri, 8 Oct 2010 20:51:37 +0000 (20:51 +0000)]
Experimental support for double word irarch.

include/libfirm/irarch.h
- give the mode to the eval function

ir/be/ia32/bearch_ia32.c
- the maximum allowed shift is 63 (for double-word shifts) on x86, not 31

ir/be/ia32/ia32_architecture.c
ir/be/ia32/ia32_architecture.h
- estimate the cost for 64bit operations

ir/ir/irarch.c
- pass the mode

[r28081]

13 years agoAdd missing type kind.
Michael Beck [Fri, 8 Oct 2010 20:22:57 +0000 (20:22 +0000)]
Add missing type kind.

[r28080]

13 years agoRemove the now unused function get_Proj_type().
Matthias Braun [Fri, 8 Oct 2010 19:51:54 +0000 (19:51 +0000)]
Remove the now unused function get_Proj_type().

[r28079]

13 years agoFixed typo.
Michael Beck [Fri, 8 Oct 2010 19:31:00 +0000 (19:31 +0000)]
Fixed typo.

[r28077]

13 years agoMoved enum into firm_types, fixed some typos.
Michael Beck [Fri, 8 Oct 2010 19:29:19 +0000 (19:29 +0000)]
Moved enum into firm_types, fixed some typos.

[r28076]

13 years agoMoved functions from opt_confirms.h into official header, do edgjfe can use them.
Michael Beck [Fri, 8 Oct 2010 19:20:35 +0000 (19:20 +0000)]
Moved functions from opt_confirms.h into official header, do edgjfe can use them.

[r28075]

13 years agoC99 feature removed.
Michael Beck [Fri, 8 Oct 2010 18:51:59 +0000 (18:51 +0000)]
C99 feature removed.

[r28074]

13 years agomake sparc+arm backend completely independent from beabi
Matthias Braun [Fri, 8 Oct 2010 14:02:22 +0000 (14:02 +0000)]
make sparc+arm backend completely independent from beabi

[r28073]

13 years agobackend: put ignore regs into beirg
Matthias Braun [Fri, 8 Oct 2010 14:02:20 +0000 (14:02 +0000)]
backend: put ignore regs into beirg

[r28072]

13 years agobackend: cleanup queries for ignore regs
Matthias Braun [Fri, 8 Oct 2010 14:02:19 +0000 (14:02 +0000)]
backend: cleanup queries for ignore regs

[r28071]

13 years agosparc: support mode_b lowering
Matthias Braun [Fri, 8 Oct 2010 14:02:17 +0000 (14:02 +0000)]
sparc: support mode_b lowering

[r28070]

13 years agosparc: implement omit-fp mode
Matthias Braun [Fri, 8 Oct 2010 14:02:16 +0000 (14:02 +0000)]
sparc: implement omit-fp mode

[r28069]

13 years agosparc: model restore as explicit node, refactor Save node
Matthias Braun [Fri, 8 Oct 2010 14:02:15 +0000 (14:02 +0000)]
sparc: model restore as explicit node, refactor Save node

[r28068]

13 years agosparc: crude implementation of float Unknown
Matthias Braun [Fri, 8 Oct 2010 14:02:13 +0000 (14:02 +0000)]
sparc: crude implementation of float Unknown

[r28067]

13 years agorename tarval to ir_tarval
Matthias Braun [Fri, 8 Oct 2010 13:36:56 +0000 (13:36 +0000)]
rename tarval to ir_tarval

[r28062]

13 years agofix wrong types
Matthias Braun [Fri, 8 Oct 2010 13:36:53 +0000 (13:36 +0000)]
fix wrong types

[r28061]

13 years agofix invalid double definition of irg_extblk_info_state
Matthias Braun [Fri, 8 Oct 2010 13:36:52 +0000 (13:36 +0000)]
fix invalid double definition of irg_extblk_info_state

[r28060]

13 years agoimproved and completely automatic vc2010 projectfile updater
Matthias Braun [Fri, 8 Oct 2010 13:36:51 +0000 (13:36 +0000)]
improved and completely automatic vc2010 projectfile updater

[r28059]

13 years agowin32 version of obstack_printf
Matthias Braun [Fri, 8 Oct 2010 13:36:50 +0000 (13:36 +0000)]
win32 version of obstack_printf

[r28058]

13 years agoremove rbitset_w_size type functions: a raw_bitset with a size is a bitset_t
Matthias Braun [Fri, 8 Oct 2010 13:36:50 +0000 (13:36 +0000)]
remove rbitset_w_size type functions: a raw_bitset with a size is a bitset_t

[r28057]

13 years agoadapt current_ir_graph in irg_walk
Matthias Braun [Fri, 8 Oct 2010 13:36:49 +0000 (13:36 +0000)]
adapt current_ir_graph in irg_walk

[r28056]

13 years agolower_dw: refactor to use a smart walk strategy and factoring out some common code...
Matthias Braun [Fri, 8 Oct 2010 13:36:48 +0000 (13:36 +0000)]
lower_dw: refactor to use a smart walk strategy and factoring out some common code to get a node_entry

[r28055]

13 years agolower_dw: Remove RotL special case, normal code produces the same result
Matthias Braun [Fri, 8 Oct 2010 13:36:48 +0000 (13:36 +0000)]
lower_dw: Remove RotL special case, normal code produces the same result

[r28054]

13 years agolower_dw: remove pointless comments at end of {}
Matthias Braun [Fri, 8 Oct 2010 13:36:47 +0000 (13:36 +0000)]
lower_dw: remove pointless comments at end of {}

[r28053]

13 years agolower_dw: irn_idxs are unsigned not int
Matthias Braun [Fri, 8 Oct 2010 13:36:46 +0000 (13:36 +0000)]
lower_dw: irn_idxs are unsigned not int

[r28052]

13 years agolower_dw: get away without #define magic
Matthias Braun [Fri, 8 Oct 2010 13:36:46 +0000 (13:36 +0000)]
lower_dw: get away without #define magic

[r28051]

13 years agolower_dw: be independent of current_ir_graph
Matthias Braun [Fri, 8 Oct 2010 13:36:45 +0000 (13:36 +0000)]
lower_dw: be independent of current_ir_graph

[r28050]

13 years agoFixed wrong usage of Abs node, fixed calculations, disabled broken invariant loop...
Christian Helmer [Wed, 6 Oct 2010 15:24:53 +0000 (15:24 +0000)]
Fixed wrong usage of Abs node, fixed calculations, disabled broken invariant loop unrolling.

[r28049]

13 years agoremove irsimpletype stuff (unused/broken)
Matthias Braun [Wed, 6 Oct 2010 08:40:42 +0000 (08:40 +0000)]
remove irsimpletype stuff (unused/broken)

[r28043]

13 years agocleanup ircons code; add current_ir_graph independent construction bits; new_ir_graph...
Matthias Braun [Wed, 6 Oct 2010 08:40:41 +0000 (08:40 +0000)]
cleanup ircons code; add current_ir_graph independent construction bits; new_ir_graph does not set current_ir_graph anymore

[r28042]

13 years agomake some more optimisations independent of current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:40 +0000 (08:40 +0000)]
make some more optimisations independent of current_ir_graph

[r28041]

13 years agomake reassoc independent of current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:39 +0000 (08:40 +0000)]
make reassoc independent of current_ir_graph

[r28040]

13 years agoput register classes into arch_env struct, no need for complicated callbacks
Matthias Braun [Wed, 6 Oct 2010 08:40:38 +0000 (08:40 +0000)]
put register classes into arch_env struct, no need for complicated callbacks

[r28039]

13 years agochange backends to produce 1 big array with all registers
Matthias Braun [Wed, 6 Oct 2010 08:40:37 +0000 (08:40 +0000)]
change backends to produce 1 big array with all registers

[r28038]

13 years agoforbid calls of new_XXX and new_d_XXX when not in phase_building (only new_r_XXX...
Matthias Braun [Wed, 6 Oct 2010 08:40:34 +0000 (08:40 +0000)]
forbid calls of new_XXX and new_d_XXX when not in phase_building (only new_r_XXX allowed)

[r28037]

13 years agomake firm optimisations independent of current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:33 +0000 (08:40 +0000)]
make firm optimisations independent of current_ir_graph

[r28036]

13 years agojumpthreading: do not rely on current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:32 +0000 (08:40 +0000)]
jumpthreading: do not rely on current_ir_graph

[r28035]

13 years agoworkaround for lower_mode_b not working correctly in combination with create_cond_set
Matthias Braun [Wed, 6 Oct 2010 08:40:32 +0000 (08:40 +0000)]
workaround for lower_mode_b not working correctly in combination with create_cond_set

[r28034]

13 years agoallow_ifconv callback may not be NULL anymore
Matthias Braun [Wed, 6 Oct 2010 08:40:31 +0000 (08:40 +0000)]
allow_ifconv callback may not be NULL anymore

[r28033]

13 years agofix Phi getting optimized even when optimisations are disabled
Matthias Braun [Wed, 6 Oct 2010 08:40:30 +0000 (08:40 +0000)]
fix Phi getting optimized even when optimisations are disabled

[r28032]

13 years agofix bug in new part_block_edges function
Matthias Braun [Wed, 6 Oct 2010 08:40:29 +0000 (08:40 +0000)]
fix bug in new part_block_edges function

[r28031]

13 years agofix trailing whitespaces and tabulators in the middle of a line
Matthias Braun [Wed, 6 Oct 2010 08:40:28 +0000 (08:40 +0000)]
fix trailing whitespaces and tabulators in the middle of a line

[r28030]

13 years agoC99 feature removed.
Michael Beck [Sat, 2 Oct 2010 06:34:57 +0000 (06:34 +0000)]
C99 feature removed.

[r28028]

13 years agorefactor mode_b lowerer to have a create_set callback
Matthias Braun [Wed, 22 Sep 2010 14:07:44 +0000 (14:07 +0000)]
refactor mode_b lowerer to have a create_set callback

[r28023]

13 years agoalternative implementation of part_block which uses outedges instead of collect_phiprojs
Matthias Braun [Wed, 22 Sep 2010 14:07:43 +0000 (14:07 +0000)]
alternative implementation of part_block which uses outedges instead of collect_phiprojs

[r28022]

13 years agoremove some unnecessary/confusing flags
Matthias Braun [Wed, 22 Sep 2010 14:07:43 +0000 (14:07 +0000)]
remove some unnecessary/confusing flags

[r28021]

13 years agoremove MacroBlock concept
Matthias Braun [Wed, 22 Sep 2010 14:07:42 +0000 (14:07 +0000)]
remove MacroBlock concept

[r28020]

13 years agodifferentiate between Bad and Deleted (because of exchange) nodes, this avoid some...
Matthias Braun [Wed, 22 Sep 2010 14:07:40 +0000 (14:07 +0000)]
differentiate between Bad and Deleted (because of exchange) nodes, this avoid some invalid memory accesses when trying to get irg from a Bad node

[r28019]

13 years agono need for no_float_fold hack anymore
Matthias Braun [Wed, 22 Sep 2010 14:07:39 +0000 (14:07 +0000)]
no need for no_float_fold hack anymore

[r28018]

13 years agoremove non-strict exception mode
Matthias Braun [Wed, 22 Sep 2010 14:07:38 +0000 (14:07 +0000)]
remove non-strict exception mode

[r28017]

13 years agobackend: remove unused omitleaffp option
Matthias Braun [Wed, 22 Sep 2010 14:07:38 +0000 (14:07 +0000)]
backend: remove unused omitleaffp option

[r28016]

13 years agonode generator: don't create pn_ and n_ enums if there are no members
Matthias Braun [Wed, 22 Sep 2010 14:07:37 +0000 (14:07 +0000)]
node generator: don't create pn_ and n_ enums if there are no members

[r28015]