diff options
author | Kostis Sagonas <[email protected]> | 2015-06-13 15:16:00 +0200 |
---|---|---|
committer | Kostis Sagonas <[email protected]> | 2015-06-13 15:16:00 +0200 |
commit | 9e67864235e2a9183746dc904f41d03743a77fd2 (patch) | |
tree | 8e5383c413805c1eb08094d97b8be5a8774584bc | |
parent | 831aab8a46f9f659bc422fbbef4971e9e68b201f (diff) | |
download | otp-9e67864235e2a9183746dc904f41d03743a77fd2.tar.gz otp-9e67864235e2a9183746dc904f41d03743a77fd2.tar.bz2 otp-9e67864235e2a9183746dc904f41d03743a77fd2.zip |
Simplify handling of o2 and o3 option expansion
A recent rewrite of some code in this file (commit 355f4b5)
exposed some dialyzer warnings of some code which is unreachable.
Indeed, checking whether one executes on an unsupported architecture
when expanding the 'o2' and 'o3' hipe compiler options is unnecessary
because that check is performed in the expansion of the 'o1' option
anyway. While at it, simplified the code a bit not to have a very
long case clause.
-rw-r--r-- | lib/hipe/main/hipe.erl | 40 |
1 files changed, 7 insertions, 33 deletions
diff --git a/lib/hipe/main/hipe.erl b/lib/hipe/main/hipe.erl index b614f5f1ab..52c1b28ad4 100644 --- a/lib/hipe/main/hipe.erl +++ b/lib/hipe/main/hipe.erl @@ -1392,41 +1392,15 @@ o2_opts(TargetArch) -> spillmin_color, use_indexing, remove_comments, concurrent_comp, binary_opt | o1_opts(TargetArch)], case TargetArch of - ultrasparc -> - Common; - powerpc -> - Common; - ppc64 -> - Common; - arm -> - Common; - x86 -> - Common; - % [rtl_ssapre | Common]; - amd64 -> - [icode_range | Common]; % range analysis is effective on 64 bits - Arch -> - ?EXIT({executing_on_an_unsupported_architecture,Arch}) - end. + T when T =:= amd64 orelse T =:= ppc64 -> % 64-bit targets + [icode_range | Common]; + _ -> % T \in [arm, powerpc, ultrasparc, x86] + Common % [rtl_ssapre | Common]; + end. o3_opts(TargetArch) -> - Common = [icode_range, {regalloc,coalescing} | o2_opts(TargetArch)], - case TargetArch of - ultrasparc -> - Common; - powerpc -> - Common; - ppc64 -> - Common; - arm -> - Common; - x86 -> - Common; - amd64 -> - Common; - Arch -> - ?EXIT({executing_on_an_unsupported_architecture,Arch}) - end. + %% no point checking for target architecture since this is checked in 'o1' + [icode_range, {regalloc,coalescing} | o2_opts(TargetArch)]. %% Note that in general, the normal form for options should be positive. %% This is a good programming convention, so that tests in the code say |