libfirm
15 years agoHandle more general case: The right hand side of an And does not need to be an Immedi...
Christoph Mallon [Wed, 12 Nov 2008 14:17:50 +0000 (14:17 +0000)]
Handle more general case: The right hand side of an And does not need to be an Immediate to guarantee the upper bits are clean. Any "clean" node on the left or right side will do.

[r23589]

15 years agoSimplify incomprehensible condition.
Christoph Mallon [Wed, 12 Nov 2008 14:07:52 +0000 (14:07 +0000)]
Simplify incomprehensible condition.

[r23588]

15 years agoReplace if cascade by switch.
Christoph Mallon [Wed, 12 Nov 2008 14:03:42 +0000 (14:03 +0000)]
Replace if cascade by switch.

[r23587]

15 years agoFix r23461: Kick non-strict Convs with op mode == mode.
Christoph Mallon [Wed, 12 Nov 2008 13:05:21 +0000 (13:05 +0000)]
Fix r23461: Kick non-strict Convs with op mode == mode.

[r23585]

15 years agoHandle replacement of ia32_Conv_I2I by Cwtl as peephole optimisation instead of handl...
Christoph Mallon [Wed, 12 Nov 2008 10:15:16 +0000 (10:15 +0000)]
Handle replacement of ia32_Conv_I2I by Cwtl as peephole optimisation instead of handling it in the emitter.

[r23582]

15 years agomake Consts look like other nodes to avoid confusion
Matthias Braun [Tue, 11 Nov 2008 20:01:33 +0000 (20:01 +0000)]
make Consts look like other nodes to avoid confusion

[r23581]

15 years agofix node colors for some local constants
Matthias Braun [Tue, 11 Nov 2008 19:45:31 +0000 (19:45 +0000)]
fix node colors for some local constants

[r23579]

15 years agoavoid using explicit modes
Matthias Braun [Tue, 11 Nov 2008 19:45:10 +0000 (19:45 +0000)]
avoid using explicit modes

[r23578]

15 years agoFix r23571.
Christoph Mallon [Tue, 11 Nov 2008 16:32:34 +0000 (16:32 +0000)]
Fix r23571.

[r23576]

15 years ago- BugFix: get the mode from Cmp operand when calculating the negated pnc
Michael Beck [Tue, 11 Nov 2008 15:59:10 +0000 (15:59 +0000)]
- BugFix: get the mode from Cmp operand when calculating the negated pnc

[r23575]

15 years agoSet debug info for parameter stores when building be_Call.
Christoph Mallon [Tue, 11 Nov 2008 14:50:01 +0000 (14:50 +0000)]
Set debug info for parameter stores when building be_Call.

[r23571]

15 years ago- do not read the link of an exchanged node (although it
Michael Beck [Tue, 11 Nov 2008 12:34:27 +0000 (12:34 +0000)]
- do not read the link of an exchanged node (although it
  works as expected)
- small cosmetic

[r23560]

15 years agoRemove duplicated test.
Christoph Mallon [Tue, 11 Nov 2008 12:29:38 +0000 (12:29 +0000)]
Remove duplicated test.

[r23559]

15 years ago- cosmetic changes
Michael Beck [Tue, 11 Nov 2008 12:10:00 +0000 (12:10 +0000)]
- cosmetic changes

[r23556]

15 years agoMake the out edge verifier happy, when removing unnecessary ia32_Test, by not creatin...
Christoph Mallon [Tue, 11 Nov 2008 11:44:33 +0000 (11:44 +0000)]
Make the out edge verifier happy, when removing unnecessary ia32_Test, by not creating a result Proj, when there are no other users.

[r23555]

15 years ago- keep ALL mode_M nodes that have only unreachable users:
Michael Beck [Tue, 11 Nov 2008 06:11:56 +0000 (06:11 +0000)]
- keep ALL mode_M nodes that have only unreachable users:
  This fixes the problem than memory ops disappear before endless loops (fehler154.c)
- fixed some typos

[r23550]

15 years agoRemove new_{,r}d_{Bad,NoMem}(), which are just pointless wrappers for new_r_{Bad...
Christoph Mallon [Sat, 8 Nov 2008 11:00:02 +0000 (11:00 +0000)]
Remove new_{,r}d_{Bad,NoMem}(), which are just pointless wrappers for new_r_{Bad,NoMem}.

[r23536]

15 years agoGenerate new_bd_* instead of new_rd_* functions in the backend. The nodes are always...
Christoph Mallon [Sat, 8 Nov 2008 10:42:30 +0000 (10:42 +0000)]
Generate new_bd_* instead of new_rd_* functions in the backend.  The nodes are always created on the current irg.

[r23535]

15 years agoJust use new_NoMem(), it is always the current irg.
Christoph Mallon [Sat, 8 Nov 2008 10:19:36 +0000 (10:19 +0000)]
Just use new_NoMem(), it is always the current irg.

[r23534]

15 years agoSimplify emitting SSE float/int convs.
Christoph Mallon [Sat, 8 Nov 2008 10:11:13 +0000 (10:11 +0000)]
Simplify emitting SSE float/int convs.

[r23533]

15 years ago- Fix dangling % in format string, ironically in a warning about dangling %.
Christoph Mallon [Sat, 8 Nov 2008 08:16:23 +0000 (08:16 +0000)]
- Fix dangling % in format string, ironically in a warning about dangling %.
- Do not split string literals.

[r23532]

15 years agoFix subtle error in r22602, which never triggers, because we only have 32bit cmovs.
Christoph Mallon [Sat, 8 Nov 2008 07:24:49 +0000 (07:24 +0000)]
Fix subtle error in r22602, which never triggers, because we only have 32bit cmovs.

[r23531]

15 years agoFactorise common code to negate pnc.
Christoph Mallon [Sat, 8 Nov 2008 07:07:53 +0000 (07:07 +0000)]
Factorise common code to negate pnc.

[r23530]

15 years agoRemove pointless assert, (x & 7) == (int){0,1,2,3,4,5,6,7}[x & 7] is always true.
Christoph Mallon [Sat, 8 Nov 2008 06:51:32 +0000 (06:51 +0000)]
Remove pointless assert, (x & 7) == (int){0,1,2,3,4,5,6,7}[x & 7] is always true.

[r23529]

15 years agoTypos.
Christoph Mallon [Sat, 8 Nov 2008 06:45:25 +0000 (06:45 +0000)]
Typos.

[r23528]

15 years ago- change the modified flags of ASM instruction from '1' to $status_flags,
Michael Beck [Fri, 7 Nov 2008 14:42:53 +0000 (14:42 +0000)]
- change the modified flags of ASM instruction from '1' to $status_flags,
  no change yet until someone implements tracking of different flags
- add 'documentation' for the modified_flags feature

[r23518]

15 years ago- BugFix: ia32_Call modifies flags!
Michael Beck [Fri, 7 Nov 2008 14:25:15 +0000 (14:25 +0000)]
- BugFix: ia32_Call modifies flags!

[r23517]

15 years ago- fixed comment
Michael Beck [Fri, 7 Nov 2008 14:02:46 +0000 (14:02 +0000)]
- fixed comment

[r23514]

15 years ago- fixed opcode(): Const and SymConst can happen through propagate, so
Michael Beck [Fri, 7 Nov 2008 13:56:45 +0000 (13:56 +0000)]
- fixed opcode(): Const and SymConst can happen through propagate, so
  we must add code to handle them
- for now, only Call-addresses are not threated as input nodes:
  this allows more blocks to b melted, but may increase the live-in set
- split by live-troughs yet. this is a bit to restrictive but
  ok for now. Replace this later by Phi node splitting
- ALL live-outs must be roots, not only those without user inside the block

[r23513]

15 years agoAdded optimization Cmp((x >> c1) & c2, c3) = Cmp(x & (c2 << c1), c3 << c1) for eq...
Moritz Kroll [Fri, 7 Nov 2008 12:48:11 +0000 (12:48 +0000)]
Added optimization Cmp((x >> c1) & c2, c3) = Cmp(x & (c2 << c1), c3 << c1) for eq and lg

[r23512]

15 years ago- add missing include
Michael Beck [Thu, 6 Nov 2008 20:58:30 +0000 (20:58 +0000)]
- add missing include

[r23504]

15 years ago- removed "firm-jni" hack: unused and questionable anyway
Michael Beck [Thu, 6 Nov 2008 20:46:23 +0000 (20:46 +0000)]
- removed "firm-jni" hack: unused and questionable anyway

[r23503]

15 years ago- BugFix: cmp_nodes gets an ir_node **
Michael Beck [Thu, 6 Nov 2008 15:40:50 +0000 (15:40 +0000)]
- BugFix: cmp_nodes gets an ir_node **
- fixed unused argument
- fixed memory leaks
- add define to switch back to end-melt mode (general mode does not run
  pec yet)

[r23494]

15 years ago- generalized end-block melting into generic block shaping
Michael Beck [Thu, 6 Nov 2008 15:03:13 +0000 (15:03 +0000)]
- generalized end-block melting into generic block shaping

[r23487]

15 years ago- add the IRG-LINK resource
Michael Beck [Thu, 6 Nov 2008 15:02:27 +0000 (15:02 +0000)]
- add the IRG-LINK resource

[r23486]

15 years ago- C99 features removed
Michael Beck [Thu, 6 Nov 2008 13:46:02 +0000 (13:46 +0000)]
- C99 features removed

[r23481]

15 years ago- BugFix: transmit a block, not a node (fixes r23473)
Michael Beck [Thu, 6 Nov 2008 13:17:44 +0000 (13:17 +0000)]
- BugFix: transmit a block, not a node (fixes r23473)

[r23479]

15 years agoSet the orig node for 32 to 64 bit sign extensions.
Christoph Mallon [Thu, 6 Nov 2008 11:42:13 +0000 (11:42 +0000)]
Set the orig node for 32 to 64 bit sign extensions.

[r23476]

15 years agoMake using SET_IA32_ORIG_NODE() a bit simpler.
Christoph Mallon [Thu, 6 Nov 2008 11:31:49 +0000 (11:31 +0000)]
Make using SET_IA32_ORIG_NODE() a bit simpler.

[r23474]

15 years agoThe K6 does not like cltd and cwtl.
Christoph Mallon [Thu, 6 Nov 2008 10:56:19 +0000 (10:56 +0000)]
The K6 does not like cltd and cwtl.

[r23473]

15 years agoFix comments.
Christoph Mallon [Thu, 6 Nov 2008 10:32:26 +0000 (10:32 +0000)]
Fix comments.

[r23472]

15 years agoMake a few lines a bit more readable by using a local variable.
Christoph Mallon [Thu, 6 Nov 2008 10:29:04 +0000 (10:29 +0000)]
Make a few lines a bit more readable by using a local variable.

[r23471]

15 years agoFix typo in comment.
Christoph Mallon [Thu, 6 Nov 2008 10:27:47 +0000 (10:27 +0000)]
Fix typo in comment.

[r23470]

15 years agoVIA C3-2 supports all P6 instructions.
Christoph Mallon [Thu, 6 Nov 2008 10:26:38 +0000 (10:26 +0000)]
VIA C3-2 supports all P6 instructions.

[r23469]

15 years agoFix typos in comments, reformat.
Christoph Mallon [Thu, 6 Nov 2008 10:25:09 +0000 (10:25 +0000)]
Fix typos in comments, reformat.

[r23468]

15 years ago- Corrected Abs/Nabs check
Michael Beck [Thu, 6 Nov 2008 02:09:57 +0000 (02:09 +0000)]
- Corrected Abs/Nabs check

[r23462]

15 years ago- Fixed: do not kick predecessors on non-current nodes
Michael Beck [Thu, 6 Nov 2008 01:51:12 +0000 (01:51 +0000)]
- Fixed: do not kick predecessors on non-current nodes
- Arguments should also return the right precision

[r23461]

15 years ago- neither Abs nor Minus change the precision, so we can look-through them
Michael Beck [Thu, 6 Nov 2008 01:19:18 +0000 (01:19 +0000)]
- neither Abs nor Minus change the precision, so we can look-through them
  when checking for superflous strictConv

[r23460]

15 years ago- allow fabs to be constructed
Michael Beck [Thu, 6 Nov 2008 00:58:05 +0000 (00:58 +0000)]
- allow fabs to be constructed

[r23459]

15 years ago- moved declarations to appropriate header files
Michael Beck [Thu, 6 Nov 2008 00:36:17 +0000 (00:36 +0000)]
- moved declarations to appropriate header files

[r23458]

15 years ago- fixed comments
Michael Beck [Thu, 6 Nov 2008 00:30:12 +0000 (00:30 +0000)]
- fixed comments

[r23457]

15 years ago- refactored code for generic block shaping
Michael Beck [Wed, 5 Nov 2008 14:17:56 +0000 (14:17 +0000)]
- refactored code for generic block shaping

[r23445]

15 years ago- BugFix: remove critical edges to ensure that Phi's have diferent predecessor
Michael Beck [Wed, 5 Nov 2008 13:50:12 +0000 (13:50 +0000)]
- BugFix: remove critical edges to ensure that Phi's have diferent predecessor
  blocks

[r23443]

15 years agoAdded new storage class for pointer constants
Moritz Kroll [Mon, 3 Nov 2008 19:39:38 +0000 (19:39 +0000)]
Added new storage class for pointer constants

[r23420]

15 years ago- DO NOT EDIT AFTER TEST!
Michael Beck [Mon, 3 Nov 2008 18:46:30 +0000 (18:46 +0000)]
- DO NOT EDIT AFTER TEST!

[r23419]

15 years ago- when a graph is lowered because of struct return changes, transform
Michael Beck [Mon, 3 Nov 2008 14:22:00 +0000 (14:22 +0000)]
- when a graph is lowered because of struct return changes, transform
  the value param arguments in the same way like all "register" arguments:
  this fixes fehler162.c

[r23408]

15 years ago- add some comments
Michael Beck [Mon, 3 Nov 2008 14:18:44 +0000 (14:18 +0000)]
- add some comments
- split get_or_set_call_arg() into get_call_arg() and create_call_arg()

[r23407]

15 years ago- firmEvaluator (VusualStudio 6/7/8 debug extension) added
Michael Beck [Mon, 3 Nov 2008 12:02:21 +0000 (12:02 +0000)]
- firmEvaluator (VusualStudio 6/7/8 debug extension) added

[r23400]

15 years ago- fixed RELEASE build
Michael Beck [Sun, 2 Nov 2008 17:31:06 +0000 (17:31 +0000)]
- fixed RELEASE build

[r23398]

15 years agoFix switch lowerer for cases close to overflow.
Christoph Mallon [Sat, 1 Nov 2008 21:22:31 +0000 (21:22 +0000)]
Fix switch lowerer for cases close to overflow.

[r23374]

15 years agoremove test dir
Matthias Braun [Sat, 1 Nov 2008 18:20:48 +0000 (18:20 +0000)]
remove test dir

[r23364]

15 years agomove tests around
Matthias Braun [Sat, 1 Nov 2008 18:20:10 +0000 (18:20 +0000)]
move tests around

[r23363]

15 years agoremove strange tests which does not link/run
Matthias Braun [Sat, 1 Nov 2008 18:19:36 +0000 (18:19 +0000)]
remove strange tests which does not link/run

[r23361]

15 years agomove tests around
Matthias Braun [Sat, 1 Nov 2008 18:18:19 +0000 (18:18 +0000)]
move tests around

[r23360]

15 years agoswitch is still broken, copying over cparser testcase since noone runs the cparser...
Matthias Braun [Sat, 1 Nov 2008 16:56:55 +0000 (16:56 +0000)]
switch is still broken, copying over cparser testcase since noone runs the cparser tests regularily

[r23350]

15 years ago- calling normalize_n_returns() improve greatly the block shaping
Michael Beck [Fri, 31 Oct 2008 16:10:01 +0000 (16:10 +0000)]
- calling normalize_n_returns() improve greatly the block shaping
- improved debug output

[r23335]

15 years agoPreserving a test case, which would brake with pbqp transformer on ARM and postinc...
Andreas Zwinkau [Fri, 31 Oct 2008 14:54:56 +0000 (14:54 +0000)]
Preserving a test case, which would brake with pbqp transformer on ARM and postinc rules

[r23329]

15 years ago- fixed allocation of resources even more
Michael Beck [Fri, 31 Oct 2008 14:47:13 +0000 (14:47 +0000)]
- fixed allocation of resources even more

[r23328]

15 years ago- fixed allocation of resources
Michael Beck [Fri, 31 Oct 2008 14:34:18 +0000 (14:34 +0000)]
- fixed allocation of resources

[r23327]

15 years ago- removed rest of already unsupported USE_EXPLICIT_PHI_IN_STACK
Michael Beck [Fri, 31 Oct 2008 14:03:24 +0000 (14:03 +0000)]
- removed rest of already unsupported USE_EXPLICIT_PHI_IN_STACK

[r23326]

15 years ago- shorten the lifetime of a variable
Michael Beck [Fri, 31 Oct 2008 14:01:02 +0000 (14:01 +0000)]
- shorten the lifetime of a variable

[r23325]

15 years ago- Fixed memory leak: delete pseudo-irgs if any
Michael Beck [Fri, 31 Oct 2008 14:00:22 +0000 (14:00 +0000)]
- Fixed memory leak: delete pseudo-irgs if any

[r23324]

15 years ago- indentation
Michael Beck [Fri, 31 Oct 2008 13:59:44 +0000 (13:59 +0000)]
- indentation

[r23323]

15 years ago- fixed typo
Michael Beck [Fri, 31 Oct 2008 13:38:46 +0000 (13:38 +0000)]
- fixed typo

[r23322]

15 years ago- fixed _get_irp_irg()
Michael Beck [Fri, 31 Oct 2008 13:38:31 +0000 (13:38 +0000)]
- fixed _get_irp_irg()

[r23321]

15 years ago- BugFix: use remove_irp_irg() instead of free_ir_graph() to prevent
Michael Beck [Fri, 31 Oct 2008 13:24:14 +0000 (13:24 +0000)]
- BugFix: use remove_irp_irg() instead of free_ir_graph() to prevent
  double graph freeing
- Put the constant result of stat_is_active() into variable

[r23320]

15 years ago- removed some constant ARR_LEN's
Michael Beck [Fri, 31 Oct 2008 13:21:24 +0000 (13:21 +0000)]
- removed some constant ARR_LEN's
- removed useless assert

[r23319]

15 years ago- reserve necessary resources before collect phiprojs
Sebastian Buchwald [Fri, 31 Oct 2008 11:31:47 +0000 (11:31 +0000)]
- reserve necessary resources before collect phiprojs
- fixed assertion

[r23316]

15 years ago- reserve the IR_RESOURCE_PHI_LIST resource
Michael Beck [Thu, 30 Oct 2008 15:48:04 +0000 (15:48 +0000)]
- reserve the IR_RESOURCE_PHI_LIST resource

[r23313]

15 years ago- reserve the IR_RESOURCE_PHI_LIST resource
Michael Beck [Thu, 30 Oct 2008 15:44:59 +0000 (15:44 +0000)]
- reserve the IR_RESOURCE_PHI_LIST resource

[r23312]

15 years ago- invalidate tr_outs because Calls might be removed
Michael Beck [Thu, 30 Oct 2008 15:41:48 +0000 (15:41 +0000)]
- invalidate tr_outs because Calls might be removed

[r23311]

15 years ago- do not treat Constants as live-ins: this assures, that a
Michael Beck [Thu, 30 Oct 2008 02:13:58 +0000 (02:13 +0000)]
- do not treat Constants as live-ins: this assures, that a
  meltet block has the same number of inputs like the original

[r23306]

15 years ago- BugFix: kill partitions with 0 blocks either
Michael Beck [Thu, 30 Oct 2008 01:39:36 +0000 (01:39 +0000)]
- BugFix: kill partitions with 0 blocks either
- BugFix: set the ins for the newly created Phis
- BugFix: correctly construct the Phis for old inputs

[r23305]

15 years agodeactivate debug output
Michael Beck [Tue, 28 Oct 2008 15:12:43 +0000 (15:12 +0000)]
deactivate debug output

[r23280]

15 years agoimproved example
Michael Beck [Tue, 28 Oct 2008 14:56:19 +0000 (14:56 +0000)]
improved example

[r23276]

15 years ago- implemented apply phase
Michael Beck [Tue, 28 Oct 2008 14:55:49 +0000 (14:55 +0000)]
- implemented apply phase

[r23275]

15 years ago- small cleanup
Michael Beck [Tue, 28 Oct 2008 14:21:39 +0000 (14:21 +0000)]
- small cleanup

[r23271]

15 years ago- add block Phi list resource
Michael Beck [Tue, 28 Oct 2008 13:17:26 +0000 (13:17 +0000)]
- add block Phi list resource
- check, that only local/global resources are allocated

[r23266]

15 years ago- analysis part of an block merging optimization
Michael Beck [Tue, 28 Oct 2008 04:34:13 +0000 (04:34 +0000)]
- analysis part of an block merging optimization

[r23250]

15 years ago- renamed normalize_node() into ir_normalize_node() and make it available outside...
Michael Beck [Tue, 28 Oct 2008 04:33:06 +0000 (04:33 +0000)]
- renamed normalize_node() into ir_normalize_node() and make it available outside iropt.c

[r23249]

15 years ago- removed const from function definitions (causes warnings on MSVC: formal parameter...
Michael Beck [Tue, 28 Oct 2008 04:32:18 +0000 (04:32 +0000)]
- removed const from function definitions (causes warnings on MSVC: formal parameter different)

[r23248]

15 years ago- example for the new block optimization
Michael Beck [Tue, 28 Oct 2008 04:30:41 +0000 (04:30 +0000)]
- example for the new block optimization

[r23247]

15 years ago- more irp_resource_reserved()
Michael Beck [Mon, 27 Oct 2008 21:47:50 +0000 (21:47 +0000)]
- more irp_resource_reserved()

[r23246]

15 years ago- BugFix: ensure that Convs are created in the right block
Michael Beck [Mon, 27 Oct 2008 17:33:57 +0000 (17:33 +0000)]
- BugFix: ensure that Convs are  created in the right block
- BugFix: add support for Id nodes when searching for leave Sel's:
  we MUST find all leaves else some nodes are NOT removed
- removed use of visited flag, useless: we cannot reache a Sel
  node by different data pathes
- add ressource allocators

[r23240]

15 years ago- used new global resource allocator
Michael Beck [Mon, 27 Oct 2008 17:09:10 +0000 (17:09 +0000)]
- used new global resource allocator

[r23238]

15 years ago- add functions for global (ir_prog) resource management
Michael Beck [Mon, 27 Oct 2008 15:43:44 +0000 (15:43 +0000)]
- add functions for global (ir_prog) resource management

[r23235]

15 years ago- introduced IR_RESOURCE_ENTITY_LINK
Michael Beck [Mon, 27 Oct 2008 15:16:29 +0000 (15:16 +0000)]
- introduced IR_RESOURCE_ENTITY_LINK

[r23232]

15 years ago- completely get rid of useless assertion (skip_Id() want's non-const nodes)
Michael Beck [Mon, 27 Oct 2008 14:23:51 +0000 (14:23 +0000)]
- completely get rid of useless assertion (skip_Id() want's non-const nodes)

[r23230]

15 years ago- fixed (useless) assertion
Michael Beck [Mon, 27 Oct 2008 14:16:10 +0000 (14:16 +0000)]
- fixed (useless) assertion

[r23229]

15 years ago- removed useless checking of control flow input for default_compute()
Michael Beck [Sat, 25 Oct 2008 21:50:12 +0000 (21:50 +0000)]
- removed useless checking of control flow input for default_compute()

[r23193]