Commit 20eb9c9e authored by sebastian.buchwald1's avatar sebastian.buchwald1
Browse files

Optimisation -> Optimization.

parent 6525c465
......@@ -2,7 +2,7 @@ libFirm 1.21.0 (2012-11-16)
---------------------------
* Improvements of x86 backend (esp. x87 floatingpoint code)
* Improvements to sparc backend (better use of delay slots)
* Improved local optimisation rules (esp. conversions)
* Improved local optimization rules (esp. conversions)
* Make compiler more deterministic
* Bugfixes
......@@ -56,12 +56,12 @@ libFirm 1.17.0 (2009-05-15)
---------------------------
* bugfixes
* advanced load/store optimisation which hoists loads out of loops
* advanced load/store optimization which hoists loads out of loops
* Internal restruturing: Alot of node structures are automatically generated
from a specification file now.
* Add support for multiple calling conventions
* New experimental support for reading and writing programgraphs to disk
* Support and optimisations for trampolines
* Support and optimizations for trampolines
* fix PIC support
libFirm 1.16.0 (2009-01-28)
......@@ -77,7 +77,7 @@ libFirm 1.15.0 (2008-12-01)
libFirm 1.14.0 (2008-11-22)
---------------------------
* Implementation of Clicks Combined Analysis/Optimisations
* Implementation of Clicks Combined Analysis/Optimizations
* New switch lowering code
* support for global asm statements
* improved asm support
......@@ -86,7 +86,7 @@ libFirm 1.14.0 (2008-11-22)
* Improvements to spill algorithm
* fix endless loop problems
* further improve inlining heuristics
* improve peephole optimisations for x86
* improve peephole optimizations for x86
* bugfixes
libFirm 1.13.0 (2008-07-31)
......@@ -124,7 +124,7 @@ libFirm 1.12.0 (2008-02-14)
* bugfixes
* improved support for exceptions
* speed improvements
* optimisation of known libc functions
* optimization of known libc functions
libFirm 1.11.0 (2008-11-05)
---------------------------
......@@ -134,8 +134,8 @@ libFirm 1.11.0 (2008-11-05)
* Completely improved and rewritten handling of x86 address mode
* Optimized Mul -> Lea,Shift,Add transformation
* 64bit operations fixed and improved
* More local optimisations
* New backend peephole optimisations
* More local optimizations
* New backend peephole optimizations
* Explicit status flag modeling (only for x86 for now)
* Improvements of Load/Store optimisation and alias analysis
* Improvements of Load/Store optimization and alias analysis
* All C benchmarks from Spec CINT2000 work now (with our edg frontend)
......@@ -8,7 +8,7 @@ The Firm library implements the Firm intermediate representation (ir). An old
description of Firm can be found in [TLB:99].
libFirm contains algorithms for construction of the SSA form directly from the
attributed syntax tree. A set of analyses and optimisation phases is provided.
attributed syntax tree. A set of analyses and optimization phases is provided.
This version includes a complete backend for the IA32 architecture, as well as
some unfinished backends for SPARC, ARM
......@@ -24,10 +24,10 @@ some unfinished backends for SPARC, ARM
- Analyses: dominance, loop tree, execution frequency, control dependencies,
inter procedural call graph, rapid type, def-use, alias analysis,
class hierarchy analysis, ...
- Optimisations: constant folding, local common subexpression elimination,
- Optimizations: constant folding, local common subexpression elimination,
global common subexpression elimination, code placement,
operator strength reduction, scalar replacement, load/store,
control flow optimisations, if-conversion, partial condition
control flow optimizations, if-conversion, partial condition
evaluation, reassociation, tail recursion elimination,
inlining, procedure cloning, dead code elimination, ...
- local common subexpression eliminiation, constant folding,
......
......@@ -5,7 +5,7 @@
/**
* @file
* @brief Available Optimisations of libFirm.
* @brief Available Optimizations of libFirm.
*/
#ifndef FIRM_IROPTIMIZE_H
#define FIRM_IROPTIMIZE_H
......@@ -14,7 +14,7 @@
#include "begin.h"
/**
* @defgroup iroptimize Transformations and Optimisations
* @defgroup iroptimize Transformations and Optimizations
* @{
*/
......
......@@ -108,7 +108,7 @@ typedef enum ir_linkage {
IR_LINKAGE_DEFAULT = 0,
/**
* A symbol whose definition won't change in a program.
* Optimisation might replace loads from this entity with constants.
* Optimization might replace loads from this entity with constants.
* Also most linkers put such data in a constant segment which is shared
* between multiple running instances of the same application.
*/
......
......@@ -827,7 +827,7 @@ ir_node *ia32_try_create_Immediate(ir_node *node, char immediate_constraint_type
if (cnst != NULL) {
ir_tarval *offset = get_Const_tarval(cnst);
if (!tarval_is_long(offset)) {
ir_fprintf(stderr, "Optimisation Warning: tarval of %+F is not a long?\n", cnst);
ir_fprintf(stderr, "Optimization warning: tarval of %+F is not a long?\n", cnst);
return NULL;
}
......
......@@ -845,7 +845,7 @@ static void peephole_ia32_Lea(ir_node *node)
if (base == NULL && index == NULL) {
/* we shouldn't construct these in the first place... */
#ifdef DEBUG_libfirm
ir_fprintf(stderr, "Optimisation warning: found immediate only lea\n");
ir_fprintf(stderr, "Optimization warning: found immediate only lea\n");
#endif
return;
}
......@@ -870,7 +870,7 @@ static void peephole_ia32_Lea(ir_node *node)
if (index == NULL) {
#ifdef DEBUG_libfirm
if (!has_immediates) {
ir_fprintf(stderr, "Optimisation warning: found lea which is "
ir_fprintf(stderr, "Optimization warning: found lea which is "
"just a copy\n");
}
#endif
......@@ -895,7 +895,7 @@ static void peephole_ia32_Lea(ir_node *node)
goto make_shl;
} else if (!has_immediates) {
#ifdef DEBUG_libfirm
ir_fprintf(stderr, "Optimisation warning: found lea which is "
ir_fprintf(stderr, "Optimization warning: found lea which is "
"just a copy\n");
#endif
}
......@@ -1077,7 +1077,7 @@ static void optimize_conv_store(ir_node *node)
if (get_mode_size_bits(conv_mode) < get_mode_size_bits(store_mode))
return;
ir_fprintf(stderr, "Optimisation warning: unoptimized ia32 Store(Conv) (%+F, %+F)\n", node, pred);
ir_fprintf(stderr, "Optimization warning: unoptimized ia32 Store(Conv) (%+F, %+F)\n", node, pred);
set_irn_n(node, n_ia32_Store_val, get_irn_n(pred, n_ia32_Conv_I2I_val));
if (get_irn_n_edges(pred_proj) == 0) {
kill_node(pred_proj);
......@@ -1124,7 +1124,7 @@ static void optimize_load_conv(ir_node *node)
}
/* kill the conv */
ir_fprintf(stderr, "Optimisation warning: unoptimized ia32 Conv(Load) (%+F, %+F)\n", node, predpred);
ir_fprintf(stderr, "Optimization warning: unoptimized ia32 Conv(Load) (%+F, %+F)\n", node, predpred);
exchange(node, pred);
}
......@@ -1197,7 +1197,7 @@ static void optimize_conv_conv(ir_node *node)
}
}
ir_fprintf(stderr, "Optimisation warning: unoptimized ia32 Conv(Conv) (%+F, %+F)\n", node, pred);
ir_fprintf(stderr, "Optimization warning: unoptimized ia32 Conv(Conv) (%+F, %+F)\n", node, pred);
/* Some user (like Phis) won't be happy if we change the mode. */
set_irn_mode(result_conv, get_irn_mode(node));
......
......@@ -1399,7 +1399,7 @@ static ir_node *gen_Add(ir_node *node)
if (add_immediate_op != NULL) {
if (!am_has_immediates(&addr)) {
#ifdef DEBUG_libfirm
ir_fprintf(stderr, "Optimisation warning Add x,0 (%+F) found\n",
ir_fprintf(stderr, "Optimization warning: Add x,0 (%+F) found\n",
node);
#endif
return be_transform_node(add_immediate_op);
......@@ -1582,7 +1582,7 @@ static ir_node *gen_Sub(ir_node *node)
}
if (is_Const(op2)) {
ir_fprintf(stderr, "Optimisation warning: found sub with const (%+F)\n",
ir_fprintf(stderr, "Optimization warning: found sub with const (%+F)\n",
node);
}
......@@ -2418,7 +2418,7 @@ static ir_node *try_create_dest_am(ir_node *node)
ir_node *op1 = get_Sub_left(val);
ir_node *op2 = get_Sub_right(val);
if (is_Const(op2)) {
ir_fprintf(stderr, "Optimisation warning: not-normalized sub ,C found\n");
ir_fprintf(stderr, "Optimization warning: not-normalized sub ,C found\n");
}
new_node = dest_am_binop(val, op1, op2, mem, ptr, mode,
new_bd_ia32_SubMem, new_bd_ia32_SubMem_8bit,
......@@ -3256,7 +3256,7 @@ static ir_node *gen_Mux(ir_node *node)
int is_abs = ir_mux_is_abs(sel, mux_false, mux_true);
if (is_abs != 0) {
if (ia32_mode_needs_gp_reg(mode)) {
ir_fprintf(stderr, "Optimisation warning: Integer abs %+F not transformed\n",
ir_fprintf(stderr, "Optimization warning: Integer abs %+F not transformed\n",
node);
} else {
ir_node *op = ir_get_abs_op(sel, mux_false, mux_true);
......@@ -3643,7 +3643,7 @@ static ir_node *create_I2I_Conv(ir_mode *src_mode, ir_mode *tgt_mode,
#ifdef DEBUG_libfirm
if (is_Const(op)) {
ir_fprintf(stderr, "Optimisation warning: conv after constant %+F\n",
ir_fprintf(stderr, "Optimization warning: conv after constant %+F\n",
op);
}
#endif
......
......@@ -229,7 +229,7 @@ static bool eat_shl(x86_address_t *addr, ir_node *node)
return false;
if (val == 0)
ir_fprintf(stderr,
"Optimisation warning: unoptimized Shl(,0) found\n");
"Optimization warning: unoptimized Shl(,0) found\n");
shifted_val = get_Shl_left(node);
} else if (is_Add(node)) {
......
......@@ -173,16 +173,16 @@ class Bad:
The typical use case for the Bad node is removing unreachable code.
Frontends should set the current_block to Bad when it is clear that
following code must be unreachable (ie. after a goto or return statement).
Optimisations also set block predecessors to Bad when it becomes clear,
Optimizations also set block predecessors to Bad when it becomes clear,
that a control flow edge can never be executed.
The gigo optimisations ensures that nodes with Bad as their block, get
The gigo optimizations ensures that nodes with Bad as their block, get
replaced by Bad themselves. Nodes with at least 1 Bad input get exchanged
with Bad too. Exception to this rule are Block, Phi, Tuple and End node;
This is because removing inputs from a Block is hairy operation (requiring,
Phis to be shortened too for example). So instead of removing block inputs
they are set to Bad, and the actual removal is left to the control flow
optimisation phase. Block, Phi, Tuple with only Bad inputs however are
optimization phase. Block, Phi, Tuple with only Bad inputs however are
replaced by Bad right away."""
flags = [ "start_block", "dump_noblock" ]
pinned = "yes"
......@@ -715,7 +715,7 @@ class Sel:
"""Computes the address of a entity of a compound type given the base
address of an instance of the compound type.
Optimisations assume that a Sel node can only produce a NULL pointer if the
Optimizations assume that a Sel node can only produce a NULL pointer if the
ptr input was NULL."""
ins = [
("mem", "memory dependency"),
......@@ -850,7 +850,7 @@ class Tuple:
@op
class Unknown:
"""Returns an unknown (at compile- and runtime) value. It is a valid
optimisation to replace an Unknown by any other constant value."""
optimization to replace an Unknown by any other constant value."""
knownBlock = True
pinned = "yes"
block = "get_irg_start_block(irg)"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment