GCC Middle and Back End API Reference
Main Page
Namespaces
Data Structures
Files
File List
Globals
GCC Middle and Back End API Reference
Namespaces
Data Structures
Files
File List
addresses.h
alias.c
alias.h
alloc-pool.c
alloc-pool.h
asan.c
asan.h
attribs.c
auto-inc-dec.c
basic-block.h
bb-reorder.c
bb-reorder.h
bitmap.c
bitmap.h
bt-load.c
builtins.c
builtins.h
caller-save.c
calls.c
cfg.c
cfganal.c
cfgbuild.c
cfgcleanup.c
cfgexpand.c
cfghooks.c
cfghooks.h
cfgloop.c
cfgloop.h
cfgloopanal.c
cfgloopmanip.c
cfgrtl.c
cgraph.c
cgraph.h
cgraphbuild.c
cgraphclones.c
cgraphunit.c
cilk-common.c
cilk.h
collect2-aix.c
collect2-aix.h
collect2.c
collect2.h
combine-stack-adj.c
combine.c
compare-elim.c
conditions.h
context.c
context.h
convert.c
convert.h
coretypes.h
coverage.c
coverage.h
cppbuiltin.c
cppbuiltin.h
cppdefault.c
cppdefault.h
cprop.c
cse.c
cselib.c
cselib.h
data-streamer-in.c
data-streamer-out.c
data-streamer.c
data-streamer.h
dbgcnt.c
dbgcnt.h
dbxout.c
dbxout.h
dce.c
dce.h
ddg.c
ddg.h
debug.c
debug.h
defaults.h
df-core.c
df-problems.c
df-scan.c
df.h
dfp.c
dfp.h
diagnostic-color.c
diagnostic-color.h
diagnostic-core.h
diagnostic.c
diagnostic.h
dojump.c
dominance.c
domwalk.c
domwalk.h
double-int.c
double-int.h
dse.c
dumpfile.c
dumpfile.h
dwarf2asm.c
dwarf2asm.h
dwarf2cfi.c
dwarf2out.c
dwarf2out.h
emit-rtl.c
emit-rtl.h
errors.c
errors.h
et-forest.c
et-forest.h
except.c
except.h
explow.c
expmed.c
expmed.h
expr.c
expr.h
file-find.c
file-find.h
final.c
fixed-value.c
fixed-value.h
flag-types.h
flags.h
fold-const.c
foo.c
fp-test.c
function.c
function.h
fwprop.c
gcc-ar.c
gcc-plugin.h
gcc.c
gcc.h
gcov-dump.c
gcov-io.c
gcov-io.h
gcov-iov.c
gcov.c
gcse.c
gcse.h
gdbhooks.py
genattr-common.c
genattr.c
genattrtab.c
genautomata.c
gencheck.c
genchecksum.c
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c
genenums.c
genextract.c
genflags.c
gengenrtl.c
gengtype-parse.c
gengtype-state.c
gengtype.c
gengtype.h
genhooks.c
genmddeps.c
genmddump.c
genmodes.c
genopinit.c
genoutput.c
genpeep.c
genpreds.c
genrecog.c
gensupport.c
gensupport.h
ggc-common.c
ggc-internal.h
ggc-none.c
ggc-page.c
ggc.h
gimple-builder.c
gimple-builder.h
gimple-fold.c
gimple-fold.h
gimple-iterator.c
gimple-low.c
gimple-low.h
gimple-pretty-print.c
gimple-pretty-print.h
gimple-ssa-strength-reduction.c
gimple-ssa.h
gimple-streamer-in.c
gimple-streamer-out.c
gimple-streamer.h
gimple.c
gimple.h
gimplify.c
glimits.h
godump.c
graph.c
graph.h
graphds.c
graphds.h
graphite-blocking.c
graphite-clast-to-gimple.c
graphite-clast-to-gimple.h
graphite-dependences.c
graphite-htab.h
graphite-interchange.c
graphite-optimize-isl.c
graphite-poly.c
graphite-poly.h
graphite-scop-detection.c
graphite-scop-detection.h
graphite-sese-to-poly.c
graphite-sese-to-poly.h
graphite.c
gstab.h
gsyms.h
gsyslimits.h
haifa-sched.c
hard-reg-set.h
hash-table.c
hash-table.h
highlev-plugin-common.h
hooks.c
hooks.h
host-default.c
hosthooks-def.h
hosthooks.h
hw-doloop.c
hw-doloop.h
hwint.c
hwint.h
ifcvt.c
incpath.c
incpath.h
init-regs.c
input.c
input.h
insn-addr.h
internal-fn.c
internal-fn.h
intl.c
intl.h
ipa-cp.c
ipa-devirt.c
ipa-inline-analysis.c
ipa-inline-transform.c
ipa-inline.c
ipa-inline.h
ipa-profile.c
ipa-prop.c
ipa-prop.h
ipa-pure-const.c
ipa-ref-inline.h
ipa-ref.c
ipa-ref.h
ipa-reference.c
ipa-reference.h
ipa-split.c
ipa-utils.c
ipa-utils.h
ipa.c
ira-build.c
ira-color.c
ira-conflicts.c
ira-costs.c
ira-emit.c
ira-int.h
ira-lives.c
ira.c
ira.h
is-a.h
jump.c
langhooks-def.h
langhooks.c
langhooks.h
lcm.c
libfuncs.h
limitx.h
limity.h
lists.c
loop-doloop.c
loop-init.c
loop-invariant.c
loop-iv.c
loop-unroll.c
loop-unswitch.c
lower-subreg.c
lower-subreg.h
lra-assigns.c
lra-coalesce.c
lra-constraints.c
lra-eliminations.c
lra-int.h
lra-lives.c
lra-spills.c
lra.c
lra.h
lto-cgraph.c
lto-compress.c
lto-compress.h
lto-opts.c
lto-section-in.c
lto-section-out.c
lto-streamer-in.c
lto-streamer-out.c
lto-streamer.c
lto-streamer.h
lto-wrapper.c
machmode.h
main.c
mcf.c
mode-switching.c
modulo-sched.c
omega.c
omega.h
omp-low.c
omp-low.h
optabs.c
optabs.h
opts-common.c
opts-diagnostic.h
opts-global.c
opts.c
opts.h
output.h
params.c
params.h
pass_manager.h
passes.c
plugin.c
plugin.h
pointer-set.c
pointer-set.h
postreload-gcse.c
postreload.c
predict.c
predict.h
prefix.c
prefix.h
pretty-print.c
pretty-print.h
print-rtl.c
print-tree.c
profile.c
profile.h
read-md.c
read-md.h
read-rtl.c
real.c
real.h
realmpfr.c
realmpfr.h
recog.c
recog.h
ree.c
reg-stack.c
regcprop.c
reginfo.c
regrename.c
regrename.h
regs.h
regset.h
regstat.c
reload.c
reload.h
reload1.c
reorg.c
resource.c
resource.h
rtl-error.c
rtl-error.h
rtl.c
rtl.h
rtlanal.c
rtlhooks-def.h
rtlhooks.c
sbitmap.c
sbitmap.h
sched-deps.c
sched-ebb.c
sched-int.h
sched-rgn.c
sched-vis.c
sdbout.c
sdbout.h
sel-sched-dump.c
sel-sched-dump.h
sel-sched-ir.c
sel-sched-ir.h
sel-sched.c
sel-sched.h
sese.c
sese.h
simplify-rtx.c
sparseset.c
sparseset.h
sreal.c
sreal.h
ssa-iterators.h
stack-ptr-mod.c
statistics.c
statistics.h
stmt.c
stor-layout.c
store-motion.c
streamer-hooks.c
streamer-hooks.h
stringpool.c
symtab.c
system.h
target-def.h
target-globals.c
target-globals.h
target-hooks-macros.h
target.h
targhooks.c
targhooks.h
timevar.c
timevar.h
tlink.c
toplev.c
toplev.h
tracer.c
trans-mem.c
trans-mem.h
tree-affine.c
tree-affine.h
tree-browser.c
tree-call-cdce.c
tree-cfg.c
tree-cfg.h
tree-cfgcleanup.c
tree-cfgcleanup.h
tree-chrec.c
tree-chrec.h
tree-complex.c
tree-core.h
tree-data-ref.c
tree-data-ref.h
tree-dfa.c
tree-dfa.h
tree-diagnostic.c
tree-diagnostic.h
tree-dump.c
tree-dump.h
tree-eh.c
tree-eh.h
tree-emutls.c
tree-hasher.h
tree-if-conv.c
tree-inline.c
tree-inline.h
tree-into-ssa.c
tree-into-ssa.h
tree-iterator.c
tree-iterator.h
tree-loop-distribution.c
tree-nested.c
tree-nrv.c
tree-object-size.c
tree-outof-ssa.c
tree-outof-ssa.h
tree-parloops.c
tree-parloops.h
tree-pass.h
tree-phinodes.c
tree-phinodes.h
tree-predcom.c
tree-pretty-print.c
tree-pretty-print.h
tree-profile.c
tree-scalar-evolution.c
tree-scalar-evolution.h
tree-sra.c
tree-ssa-address.c
tree-ssa-address.h
tree-ssa-alias.c
tree-ssa-alias.h
tree-ssa-ccp.c
tree-ssa-coalesce.c
tree-ssa-coalesce.h
tree-ssa-copy.c
tree-ssa-copyrename.c
tree-ssa-dce.c
tree-ssa-dom.c
tree-ssa-dom.h
tree-ssa-dse.c
tree-ssa-forwprop.c
tree-ssa-ifcombine.c
tree-ssa-live.c
tree-ssa-live.h
tree-ssa-loop-ch.c
tree-ssa-loop-im.c
tree-ssa-loop-ivcanon.c
tree-ssa-loop-ivopts.c
tree-ssa-loop-ivopts.h
tree-ssa-loop-manip.c
tree-ssa-loop-manip.h
tree-ssa-loop-niter.c
tree-ssa-loop-niter.h
tree-ssa-loop-prefetch.c
tree-ssa-loop-unswitch.c
tree-ssa-loop.c
tree-ssa-loop.h
tree-ssa-math-opts.c
tree-ssa-operands.c
tree-ssa-operands.h
tree-ssa-phiopt.c
tree-ssa-phiprop.c
tree-ssa-pre.c
tree-ssa-propagate.c
tree-ssa-propagate.h
tree-ssa-reassoc.c
tree-ssa-sccvn.c
tree-ssa-sccvn.h
tree-ssa-sink.c
tree-ssa-strlen.c
tree-ssa-structalias.c
tree-ssa-tail-merge.c
tree-ssa-ter.c
tree-ssa-ter.h
tree-ssa-threadedge.c
tree-ssa-threadedge.h
tree-ssa-threadupdate.c
tree-ssa-threadupdate.h
tree-ssa-uncprop.c
tree-ssa-uninit.c
tree-ssa.c
tree-ssa.h
tree-ssanames.c
tree-ssanames.h
tree-stdarg.c
tree-stdarg.h
tree-streamer-in.c
tree-streamer-out.c
tree-streamer.c
tree-streamer.h
tree-switch-conversion.c
tree-tailcall.c
tree-vect-data-refs.c
tree-vect-generic.c
tree-vect-loop-manip.c
tree-vect-loop.c
tree-vect-patterns.c
tree-vect-slp.c
tree-vect-stmts.c
tree-vectorizer.c
tree-vectorizer.h
tree-vrp.c
tree.c
tree.h
tsan.c
tsan.h
tsystem.h
typeclass.h
ubsan.c
ubsan.h
valtrack.c
valtrack.h
value-prof.c
value-prof.h
var-tracking.c
varasm.c
varpool.c
vec.c
vec.h
version.c
version.h
vmsdbg.h
vmsdbgout.c
vtable-verify.c
vtable-verify.h
web.c
xcoff.h
xcoffout.c
xcoffout.h
Globals
sreal.h
Go to the documentation of this file.
1
/* Definitions for simple data type for positive real numbers.
2
Copyright (C) 2002-2013 Free Software Foundation, Inc.
3
4
This file is part of GCC.
5
6
GCC is free software; you can redistribute it and/or modify it under
7
the terms of the GNU General Public License as published by the Free
8
Software Foundation; either version 3, or (at your option) any later
9
version.
10
11
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12
WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with GCC; see the file COPYING3. If not see
18
<http://www.gnu.org/licenses/>. */
19
20
#ifndef GCC_SREAL_H
21
#define GCC_SREAL_H
22
23
/* SREAL_PART_BITS has to be an even number. */
24
#if (HOST_BITS_PER_WIDE_INT / 2) % 2 == 1
25
#define SREAL_PART_BITS (HOST_BITS_PER_WIDE_INT / 2 - 1)
26
#else
27
#define SREAL_PART_BITS (HOST_BITS_PER_WIDE_INT / 2)
28
#endif
29
30
#define uhwi unsigned HOST_WIDE_INT
31
#define MAX_HOST_WIDE_INT (((uhwi) 1 << (HOST_BITS_PER_WIDE_INT - 1)) - 1)
32
33
#define SREAL_MIN_SIG ((uhwi) 1 << (SREAL_PART_BITS - 1))
34
#define SREAL_MAX_SIG (((uhwi) 1 << SREAL_PART_BITS) - 1)
35
#define SREAL_MAX_EXP (INT_MAX / 4)
36
37
#if SREAL_PART_BITS < 32
38
#define SREAL_BITS (SREAL_PART_BITS * 2)
39
#else
40
#define SREAL_BITS SREAL_PART_BITS
41
#endif
42
43
/* Structure for holding a simple real number. */
44
typedef
struct
sreal
45
{
46
#if SREAL_PART_BITS < 32
47
unsigned
HOST_WIDE_INT
sig_lo
;
/* Significant (lower part). */
48
unsigned
HOST_WIDE_INT
sig_hi
;
/* Significant (higher part). */
49
#else
50
unsigned
HOST_WIDE_INT
sig
;
/* Significant. */
51
#endif
52
signed
int
exp
;
/* Exponent. */
53
}
sreal
;
54
55
extern
void
dump_sreal
(FILE *,
sreal
*);
56
extern
void
debug
(
sreal
&ref);
57
extern
void
debug
(
sreal
*ptr);
58
extern
sreal
*
sreal_init
(
sreal
*,
unsigned
HOST_WIDE_INT
,
signed
int
);
59
extern
HOST_WIDE_INT
sreal_to_int
(
sreal
*);
60
extern
int
sreal_compare
(
sreal
*,
sreal
*);
61
extern
sreal
*
sreal_add
(
sreal
*,
sreal
*,
sreal
*);
62
extern
sreal
*
sreal_sub
(
sreal
*,
sreal
*,
sreal
*);
63
extern
sreal
*
sreal_mul
(
sreal
*,
sreal
*,
sreal
*);
64
extern
sreal
*
sreal_div
(
sreal
*,
sreal
*,
sreal
*);
65
66
#endif
gcc
sreal.h
Generated by
1.8.1.1