Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
65794112
Commit
65794112
authored
Nov 18, 2004
by
Michael Beck
Browse files
Allow to restrict the construction of Mulh nodes by the bit size.
Needed to avoid Mulh dor L(s|u) modes [r4431]
parent
3da9268a
Changes
2
Hide whitespace changes
Inline
Side-by-side
ir/ir/irarch.c
View file @
65794112
...
...
@@ -883,11 +883,13 @@ void arch_dep_replace_divmod_by_const(ir_node **div, ir_node **mod, ir_node *irn
static
const
arch_dep_params_t
default_params
=
{
1
,
/* also use subs */
0
,
/* allow Mulhs */
0
,
/* allow Mulus */
4
,
/* maximum shifts */
31
/* maximum shift amount */
1
,
/* also use subs */
4
,
/* maximum shifts */
31
,
/* maximum shift amount */
0
,
/* allow Mulhs */
0
,
/* allow Mulus */
32
/* Mulh allowed up to 32 bit */
};
const
arch_dep_params_t
*
arch_dep_default_factory
(
void
)
{
...
...
ir/ir/irarch.h
View file @
65794112
...
...
@@ -17,16 +17,18 @@
* optimizations.
*/
typedef
struct
{
int
also_use_subs
:
1
;
/**< Use also Subs when resolving muls to shifts */
int
allow_mulhs
:
1
;
/**< Use the Mulhs operation for division by constant */
int
allow_mulhu
:
1
;
/**< Use the Mulhu operation for division by constant */
/* Mul optimization */
int
also_use_subs
:
1
;
/**< Use also Subs when resolving muls to shifts */
int
maximum_shifts
;
/**< The maximum number of shifts that shall be inserted for a mul. */
unsigned
highest_shift_amount
;
/**< The highest shift amount you want to
tolerate. Muls which would require a higher
shift constant are left. */
int
maximum_shifts
;
/**< The maximum number of shifts that shall be
inserted for a mul. */
int
highest_shift_amount
;
/**< The highest shift amount you want to
tolerate. Muls which would require a higher
shift constant are left. */
/* Div/Mod optimization */
int
allow_mulhs
:
1
;
/**< Use the Mulhs operation for division by constant */
int
allow_mulhu
:
1
;
/**< Use the Mulhu operation for division by constant */
unsigned
max_bits_for_mulh
;
/**< Maximum number of bits the Mulh operation can take.
Modes with higher amount of bits will use Mulh */
}
arch_dep_params_t
;
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment