libfirm
16 years ago- better handling for strictConv's, optimized conv_orgie.c now
Michael Beck [Mon, 2 Jun 2008 13:08:04 +0000 (13:08 +0000)]
- better handling for strictConv's, optimized conv_orgie.c now

[r19927]

16 years agotest for strictConv orgie
Michael Beck [Mon, 2 Jun 2008 11:59:46 +0000 (11:59 +0000)]
test for strictConv orgie

[r19926]

16 years ago- Fixed strict-convs before Stores again: We can skip at least those
Michael Beck [Mon, 2 Jun 2008 11:55:54 +0000 (11:55 +0000)]
- Fixed strict-convs before Stores again: We can skip at least those
  that conv TO the same mode as the store

[r19925]

16 years agoadd missing returns
Matthias Braun [Mon, 2 Jun 2008 10:19:11 +0000 (10:19 +0000)]
add missing returns

[r19914]

16 years ago- stack alignment is now power of two
Michael Beck [Sun, 1 Jun 2008 20:25:03 +0000 (20:25 +0000)]
- stack alignment is now power of two

[r19910]

16 years agoDo NOT ignore Bad Phi predecessors. Otherwise
Michael Beck [Sun, 1 Jun 2008 16:16:45 +0000 (16:16 +0000)]
Do NOT ignore Bad Phi predecessors. Otherwise
Phi nodes might be removed in dead cycles (causing normal nodes
pointing to themselfs).

[r19907]

16 years agocall optimize_cf() to delete dead-code that might arise after cond_eval
Michael Beck [Sun, 1 Jun 2008 15:32:23 +0000 (15:32 +0000)]
call optimize_cf() to delete dead-code that might arise after cond_eval

[r19906]

16 years agouse ir_type from call instead of the type from the symconst entity in mapper
Matthias Braun [Sat, 31 May 2008 10:47:43 +0000 (10:47 +0000)]
use ir_type from call instead of the type from the symconst entity in mapper

[r19887]

16 years agooutputting +,-,* in assembler makes no sense for floats
Matthias Braun [Sat, 31 May 2008 10:40:03 +0000 (10:40 +0000)]
outputting +,-,* in assembler makes no sense for floats

[r19885]

16 years agofix alloca mapper
Matthias Braun [Sat, 31 May 2008 10:39:31 +0000 (10:39 +0000)]
fix alloca mapper

[r19884]

16 years agoAlloc is not a binop
Matthias Braun [Sat, 31 May 2008 10:27:30 +0000 (10:27 +0000)]
Alloc is not a binop

[r19882]

16 years agoupdated for latest libFirm changes
Michael Beck [Sat, 31 May 2008 09:56:42 +0000 (09:56 +0000)]
updated for latest libFirm changes

[r19881]

16 years agono, we cannot skip all convs before vfst (but just float->float convs)
Matthias Braun [Sat, 31 May 2008 06:19:55 +0000 (06:19 +0000)]
no, we cannot skip all convs before vfst (but just float->float convs)

[r19872]

16 years ago- in x87 mode, skipp ALL conv's before stores
Michael Beck [Sat, 31 May 2008 01:16:47 +0000 (01:16 +0000)]
- in x87 mode, skipp ALL conv's before stores
- BugFix: handle float->int Conv and Store right for SSE

[r19870]

16 years agoallow x + 0.0 = x even in strict mode
Michael Beck [Sat, 31 May 2008 00:56:18 +0000 (00:56 +0000)]
allow x + 0.0 = x even in strict mode

[r19869]

16 years agorenamed modecode, mode_sort, mode_arithmetic to ir_*
Michael Beck [Fri, 30 May 2008 20:54:35 +0000 (20:54 +0000)]
renamed modecode, mode_sort, mode_arithmetic to ir_*

[r19868]

16 years agoinline_method():
Michael Beck [Fri, 30 May 2008 20:38:44 +0000 (20:38 +0000)]
inline_method():
 - check the argument and the parameter types for compatibility
 - can inline methods with "mostly" compatible call/entity types
 - better check for additional parameters

[r19867]

16 years ago- removed assertion() it is allowed to ask for non-existing arguments
Michael Beck [Fri, 30 May 2008 19:15:08 +0000 (19:15 +0000)]
- removed assertion() it is allowed to ask for non-existing arguments

[r19866]

16 years agohandle a call with less arguments than needed gracefully: don't inline yet
Michael Beck [Fri, 30 May 2008 16:30:38 +0000 (16:30 +0000)]
handle a call with less arguments than needed gracefully: don't inline yet

[r19859]

16 years ago- no more be_init(): backend is initialised in init_firm
Michael Beck [Fri, 30 May 2008 15:00:38 +0000 (15:00 +0000)]
- no more be_init(): backend is initialised in init_firm

[r19855]

16 years ago- no more be_init(): backend is initialised in init_firm
Michael Beck [Fri, 30 May 2008 14:51:08 +0000 (14:51 +0000)]
- no more be_init(): backend is initialised in init_firm

[r19852]

16 years agoadd extra info for immediate float mode
Michael Beck [Fri, 30 May 2008 13:36:52 +0000 (13:36 +0000)]
add extra info for immediate float mode

[r19841]

16 years agoadd missing prototyp for dump_block_marker_in_title()
Michael Beck [Fri, 30 May 2008 13:34:44 +0000 (13:34 +0000)]
add missing prototyp for dump_block_marker_in_title()

[r19840]

16 years agocleanup space generation logic and make it more robust for union constructs
Matthias Braun [Fri, 30 May 2008 11:34:53 +0000 (11:34 +0000)]
cleanup space generation logic and make it more robust for union constructs

[r19833]

16 years agofixed warning
Michael Beck [Thu, 29 May 2008 09:05:04 +0000 (09:05 +0000)]
fixed warning

[r19825]

16 years ago- Fixed output for IncSP nodes
Michael Beck [Thu, 29 May 2008 02:23:51 +0000 (02:23 +0000)]
- Fixed output for IncSP nodes
- removed unused code

[r19824]

16 years ago- Add a peephole phase that fixes all stack offsets
Michael Beck [Thu, 29 May 2008 01:58:34 +0000 (01:58 +0000)]
- Add a peephole phase that fixes all stack offsets

[r19823]

16 years ago- Emitter for IncSP emits now Add or Sub
Michael Beck [Thu, 29 May 2008 01:57:01 +0000 (01:57 +0000)]
- Emitter for IncSP emits now Add or Sub
- do not emit NOP instructions like IncSP(0) or Copy x,x

[r19822]

16 years agorenamed SubSP to SubSPandCopy, add some constants
Michael Beck [Thu, 29 May 2008 01:55:45 +0000 (01:55 +0000)]
renamed SubSP to SubSPandCopy, add some constants

[r19821]

16 years ago- moved peephole_IncSP_IncSP() to bepeephole.c, as this is a generic function and...
Michael Beck [Wed, 28 May 2008 22:47:36 +0000 (22:47 +0000)]
- moved peephole_IncSP_IncSP() to bepeephole.c, as this is a generic function and can be used from other BE's

[r19817]

16 years agosimplify code
Michael Beck [Wed, 28 May 2008 20:19:07 +0000 (20:19 +0000)]
simplify code

[r19816]

16 years agofixed warning
Michael Beck [Wed, 28 May 2008 15:06:33 +0000 (15:06 +0000)]
fixed warning

[r19815]

16 years agobetter version of the barrier remover (no warnings)
Michael Beck [Wed, 28 May 2008 15:05:10 +0000 (15:05 +0000)]
better version of the barrier remover (no warnings)

[r19814]

16 years agoremove barrier from schedule before peephole optimization
Michael Beck [Wed, 28 May 2008 14:46:49 +0000 (14:46 +0000)]
remove barrier from schedule before peephole optimization

[r19813]

16 years agoimplemened add esp, 4/8 -> push/push
Michael Beck [Wed, 28 May 2008 13:42:24 +0000 (13:42 +0000)]
implemened add esp, 4/8 -> push/push

[r19812]

16 years agofixed condition for add/sub esp, 4/8
Michael Beck [Wed, 28 May 2008 13:05:48 +0000 (13:05 +0000)]
fixed condition for add/sub esp, 4/8

[r19810]

16 years agobock marker can be dumped in the block title
Michael Beck [Wed, 28 May 2008 11:43:30 +0000 (11:43 +0000)]
bock marker can be dumped in the block title

[r19807]

16 years ago- dump the block mark
Michael Beck [Wed, 28 May 2008 11:36:46 +0000 (11:36 +0000)]
- dump the block mark
- reorder output a bit

[r19806]

16 years ago- added is_Id, is_CallBegin, is_Free
Michael Beck [Wed, 28 May 2008 11:29:40 +0000 (11:29 +0000)]
- added is_Id, is_CallBegin, is_Free
- placed mode #ifdef INTERPROCEDURAL_VIEW
- used is_*(x) fucntions instead of x->op == op_X

[r19805]

16 years ago- added is_Filter()
Michael Beck [Wed, 28 May 2008 10:38:15 +0000 (10:38 +0000)]
- added is_Filter()
- fixed is_Proj() implementation
- improved docu a bit

[r19804]

16 years ago- changed docu uses Phi list instead of links now
Michael Beck [Tue, 27 May 2008 17:10:02 +0000 (17:10 +0000)]
- changed docu uses Phi list instead of links now

[r19803]

16 years agoPhi's are now transmitted as a Phi list, not using links
Michael Beck [Tue, 27 May 2008 17:07:31 +0000 (17:07 +0000)]
Phi's are now transmitted as a Phi list, not using links

[r19802]

16 years agoBugFix: phi node might be exchanged, read the next Phi before this can happen
Michael Beck [Tue, 27 May 2008 15:35:47 +0000 (15:35 +0000)]
BugFix: phi node might be exchanged, read the next Phi before this can happen

[r19801]

16 years ago- BugFix: set the mark on the right block
Michael Beck [Tue, 27 May 2008 15:17:05 +0000 (15:17 +0000)]
- BugFix: set the mark on the right block
- fixed warning
- use get_Block_cfgpred_block() where appropriate

[r19800]

16 years agoadd missing non-inline versions
Michael Beck [Tue, 27 May 2008 14:12:04 +0000 (14:12 +0000)]
add missing non-inline versions

[r19798]

16 years agoBugFix: fixed Phi-list manipulation
Michael Beck [Tue, 27 May 2008 13:45:31 +0000 (13:45 +0000)]
BugFix: fixed Phi-list manipulation

[r19797]

16 years agoredo r19786, peculiarity has been fixed in the cparser FE
Michael Beck [Tue, 27 May 2008 13:42:08 +0000 (13:42 +0000)]
redo r19786, peculiarity has been fixed in the cparser FE

[r19796]

16 years agoneed includes for alloca
Matthias Braun [Tue, 27 May 2008 12:52:41 +0000 (12:52 +0000)]
need includes for alloca

[r19794]

16 years agoremove a too strict check, we can have local function entites with no irg assigned...
Matthias Braun [Tue, 27 May 2008 11:44:59 +0000 (11:44 +0000)]
remove a too strict check, we can have local function entites with no irg assigned (its not useful but perfectly legal in many languages)

[r19786]

16 years agomake verifier a bit less strict about keeps
Matthias Braun [Tue, 27 May 2008 11:27:26 +0000 (11:27 +0000)]
make verifier a bit less strict about keeps

[r19784]

16 years agodo an upconv instead of panic when we do <32bit right shifts
Matthias Braun [Tue, 27 May 2008 11:24:14 +0000 (11:24 +0000)]
do an upconv instead of panic when we do <32bit right shifts

[r19783]

16 years agobuild a keep behind each pop to avoid double register warnings
Matthias Braun [Tue, 27 May 2008 07:27:57 +0000 (07:27 +0000)]
build a keep behind each pop to avoid double register warnings

[r19780]

16 years agoadd some comments, small cosmetic
Michael Beck [Mon, 26 May 2008 14:29:40 +0000 (14:29 +0000)]
add some comments, small cosmetic

[r19777]

16 years agosmall BugFix
Michael Beck [Mon, 26 May 2008 14:09:21 +0000 (14:09 +0000)]
small BugFix

[r19776]

16 years agomust use Lg, not Ne to check for !=
Michael Beck [Mon, 26 May 2008 14:01:02 +0000 (14:01 +0000)]
must use Lg, not Ne to check for !=

[r19775]

16 years agouse block Phi lists and Block marks to get rid of block_info_t
Michael Beck [Mon, 26 May 2008 13:50:30 +0000 (13:50 +0000)]
use block Phi lists and Block marks to get rid of block_info_t

[r19774]

16 years agoadd *_Block_mark() api to mark easily Blocks in the graph
Michael Beck [Mon, 26 May 2008 13:37:27 +0000 (13:37 +0000)]
add *_Block_mark() api to mark easily Blocks in the graph

[r19773]

16 years agoused new add_Block_phi()
Michael Beck [Mon, 26 May 2008 12:59:43 +0000 (12:59 +0000)]
used new add_Block_phi()

[r19772]

16 years agotypo fixed
Michael Beck [Mon, 26 May 2008 12:57:14 +0000 (12:57 +0000)]
typo fixed

[r19771]

16 years agoadd_Block_phi() implemented
Michael Beck [Mon, 26 May 2008 12:56:20 +0000 (12:56 +0000)]
add_Block_phi() implemented

[r19770]

16 years agoC99 features removed
Michael Beck [Mon, 26 May 2008 12:21:21 +0000 (12:21 +0000)]
C99 features removed

[r19769]

16 years agofix a few warnings
Matthias Braun [Sun, 25 May 2008 09:39:18 +0000 (09:39 +0000)]
fix a few warnings

[r19760]

16 years agocommit the beginning of advanced boolopt (had that laying around for months now ...
Matthias Braun [Sun, 25 May 2008 09:30:08 +0000 (09:30 +0000)]
commit the beginning of advanced boolopt (had that laying around for months now - so before it gets lost...)

[r19759]

16 years agoSpecial handling seems not to work, remove critical edges in advance
Michael Beck [Sun, 25 May 2008 03:52:05 +0000 (03:52 +0000)]
Special handling seems not to work, remove critical edges in advance

[r19758]

16 years agoget rid of most Optimisation warning: found add/sub with const
Michael Beck [Sun, 25 May 2008 03:42:19 +0000 (03:42 +0000)]
get rid of most Optimisation warning: found add/sub with const

[r19757]

16 years agoadd Christoph's loop test
Michael Beck [Sun, 25 May 2008 02:26:31 +0000 (02:26 +0000)]
add Christoph's loop test

[r19755]

16 years ago- simplified get_effective_use_block()
Michael Beck [Sun, 25 May 2008 02:23:07 +0000 (02:23 +0000)]
- simplified get_effective_use_block()
- add support for mode_b nodes:
  - propagate true/false
  - create Phi's at dominance frontier for cond_eval()

[r19754]

16 years ago- do not optimize away Confirms with Constants
Michael Beck [Sun, 25 May 2008 02:14:38 +0000 (02:14 +0000)]
- do not optimize away Confirms with Constants

[r19753]

16 years ago- can now handle const-like Confirms
Michael Beck [Sun, 25 May 2008 02:12:18 +0000 (02:12 +0000)]
- can now handle const-like Confirms

[r19752]

16 years agoimproved test: added new Confirm/cond_eval combination
Michael Beck [Sun, 25 May 2008 02:10:49 +0000 (02:10 +0000)]
improved test: added new Confirm/cond_eval combination

[r19751]

16 years agoarch_env_* macros updated
Michael Beck [Sat, 24 May 2008 16:55:57 +0000 (16:55 +0000)]
arch_env_* macros updated

[r19750]

16 years agoallocate all op attributes on block instead of a lot of malloc calls
Michael Beck [Sat, 24 May 2008 16:35:45 +0000 (16:35 +0000)]
allocate all op attributes on block instead of a lot of malloc calls

[r19749]

16 years ago- no need to add two custom pointers: the tag is now simply a 32bit number, typically...
Michael Beck [Sat, 24 May 2008 16:22:08 +0000 (16:22 +0000)]
- no need to add two custom pointers: the tag is now simply a 32bit number, typically a FOURCC code

[r19748]

16 years agoWhen testing whether generating a Psi is allowed, check whether the mode of the compa...
Christoph Mallon [Sat, 24 May 2008 10:11:27 +0000 (10:11 +0000)]
When testing whether generating a Psi is allowed, check whether the mode of the compared values is <= 32 bit in the case when cmov is disallowed, too. (improved Matze's accidental  commit)

[r19747]

16 years agonormalize/fix ProjM numbers, avoid dead code in some instances
Matthias Braun [Sat, 24 May 2008 10:08:26 +0000 (10:08 +0000)]
normalize/fix ProjM numbers, avoid dead code in some instances

[r19746]

16 years agowe can have mode_b inputs to Convs as well (I hope this fix is correct...)
Matthias Braun [Sat, 24 May 2008 10:05:20 +0000 (10:05 +0000)]
we can have mode_b inputs to Convs as well (I hope this fix is correct...)

[r19745]

16 years agosmall improvements: cache different environment members in local variables
Michael Beck [Fri, 23 May 2008 21:28:11 +0000 (21:28 +0000)]
small improvements: cache different environment members in local variables

[r19744]

16 years ago- not really necessary, but makes the array size again as big as it was before iro_La...
Michael Beck [Fri, 23 May 2008 21:09:55 +0000 (21:09 +0000)]
- not really necessary, but makes the array size again as big as it was before iro_Last was reduced

[r19743]

16 years ago- removed C99 features
Michael Beck [Fri, 23 May 2008 21:08:55 +0000 (21:08 +0000)]
- removed C99 features
- set be_ops only once
- do not overwrite already set be_ops

[r19742]

16 years agoBugFix: wrong condition for Abs (this fixes Queens.c)
Michael Beck [Fri, 23 May 2008 21:07:30 +0000 (21:07 +0000)]
BugFix: wrong condition for Abs (this fixes Queens.c)

[r19741]

16 years ago- Aus arch_isa_t wird arch_env_t sonst ändert sich nix...
Matthias Braun [Fri, 23 May 2008 19:04:09 +0000 (19:04 +0000)]
- Aus arch_isa_t wird arch_env_t sonst ändert sich nix...

[r19740]

16 years agowe don't need no stinking selfs
Matthias Braun [Fri, 23 May 2008 17:52:54 +0000 (17:52 +0000)]
we don't need no stinking selfs

[r19739]

16 years ago- arch_get_irn_ops simplified
Matthias Braun [Fri, 23 May 2008 17:37:30 +0000 (17:37 +0000)]
- arch_get_irn_ops simplified
- removed arch_irn_handler stuff

[r19738]

16 years agoRemoved the irn_handler stack.
Michael Beck [Fri, 23 May 2008 14:48:27 +0000 (14:48 +0000)]
Removed the irn_handler stack.

[r19733]

16 years agoRemoved the arch_irn_handler_t. This was just an additional redirection without
Michael Beck [Fri, 23 May 2008 14:25:50 +0000 (14:25 +0000)]
Removed the arch_irn_handler_t. This was just an additional redirection without
greater function...

[r19732]

16 years agocheck for Cmp nodes before doing doz
Michael Beck [Thu, 22 May 2008 03:04:27 +0000 (03:04 +0000)]
check for Cmp nodes before doing doz

[r19721]

16 years ago- normalize Muxes a bit: this hopefully improves the code a bit
Michael Beck [Thu, 22 May 2008 02:44:36 +0000 (02:44 +0000)]
- normalize Muxes a bit: this hopefully improves the code a bit

[r19720]

16 years agouse is_Const()
Michael Beck [Thu, 22 May 2008 02:42:10 +0000 (02:42 +0000)]
use is_Const()

[r19719]

16 years agomissing goto added
Michael Beck [Thu, 22 May 2008 01:37:58 +0000 (01:37 +0000)]
missing goto added

[r19718]

16 years ago- add more Mux optimization cases
Michael Beck [Thu, 22 May 2008 01:12:09 +0000 (01:12 +0000)]
- add more Mux optimization cases
- clarify some comments

[r19717]

16 years agofixed warnings
Michael Beck [Wed, 21 May 2008 23:56:32 +0000 (23:56 +0000)]
fixed warnings

[r19716]

16 years ago- placed phi_handler into the be_main environment, removing unnecessary allocations
Michael Beck [Wed, 21 May 2008 20:50:35 +0000 (20:50 +0000)]
- placed phi_handler into the be_main environment, removing unnecessary allocations

[r19715]

16 years ago- BugFix: replaced wrong cast by right code (no crash because offset is 0)
Michael Beck [Wed, 21 May 2008 20:29:28 +0000 (20:29 +0000)]
- BugFix: replaced wrong cast by right code (no crash because offset is 0)

[r19714]

16 years agotypos fixed
Michael Beck [Wed, 21 May 2008 19:13:40 +0000 (19:13 +0000)]
typos fixed

[r19713]

16 years ago- fixed doxygen comments
Michael Beck [Wed, 21 May 2008 19:12:42 +0000 (19:12 +0000)]
- fixed doxygen comments
- replaced O(n) test by O(1) test
- simplified code

[r19712]

16 years ago- beo_* Opcodes are now defined in irop.h, and no more dynamically allocated
Michael Beck [Wed, 21 May 2008 19:06:34 +0000 (19:06 +0000)]
- beo_* Opcodes are now defined in irop.h, and no more dynamically allocated
- simplified be_node_classify()

[r19711]

16 years ago- add a flag to allow 2 users when matching address mode: needed for Psi nodes
Michael Beck [Wed, 21 May 2008 15:11:46 +0000 (15:11 +0000)]
- add a flag to allow 2 users when matching address mode: needed for Psi nodes
- create code for unsigned Doz (a - b < 0 ? 0 : a - b)

[r19704]

16 years agotypos fixed
Michael Beck [Wed, 21 May 2008 15:10:20 +0000 (15:10 +0000)]
typos fixed

[r19703]

16 years agoassure_different_constraints():
Michael Beck [Wed, 21 May 2008 15:09:50 +0000 (15:09 +0000)]
assure_different_constraints():
we can safely IGNORE the should_be_different constraint, iff
we have only one, one should be same and both inputs are identical, for instance in
sbb(x,x)

[r19702]

16 years ago- If-conversion can generate SSE min and max nodes again.
Michael Beck [Tue, 20 May 2008 14:22:57 +0000 (14:22 +0000)]
- If-conversion can generate SSE min and max nodes again.
- preliminary support for If-conversion without Cmov

[r19689]