- Constant ropagation for float and int32/int64/nativeint arithmetic.
  Constant propagation for floats can be turned off with option
  -no-float-const-prop, for codes that change FP rounding modes at
  run-time.
- Clambda / C-- / Mach: represent float constants as FP numbers of type 
  float rather than literals of type string.
- Tested for AMD64; other archs need testing.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14673 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Do not add absolute paths for information added to
the local environment in Env.components_of_module_make.
Fixes the bug reported by Mark Shinwell on caml-devel,
on 2014-04-23. This bug was related to module aliases.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14674 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Follow-up to commit 14673: Iconst_float now takes a float, no longer a string.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14675 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
update to use the git version of camlp5

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14679 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fix some whitespace

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14680 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Follow-up to commit 14673: MASM has its own syntax for hex constants


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14683 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
New back-end optimization pass: dead code elimination.
(Removes arithmetic and load instructions whose results are unused.)
(Cherry-picked from branch backend-optim.)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14686 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ID comments are so passé.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14687 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
New back-end optimization pass: common subexpression elimination (CSE).
(Reuses results of previous computations instead of recomputing them.)
(Cherry-picked from branch backend-optim.)
Tested on amd64/linux and i386/linux.
Other back-ends compile (after assorted updates) but are untested.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14688 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
PR#6361: Hashtbl.hash not terminating on some lazy values w/ recursive types


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14693 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
add missing rules for CSE.ml

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14694 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
add CSE.ml to ignore files

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14695 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fix bug in commit 14694

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14696 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Revert 14616, 14617.  Go back to the original syntax for toplevel directives, only allowing capitalized identifiers in addition to lowercase ones.  Split #show into variants #show_val, #show_type, etc,  and implement a generic #show which combines all the results.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14697 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Document that the new alternative syntax for string literals can break comments.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14698 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
merge trunk up to commit 14699

git-svn-id: http://caml.inria.fr/svn/ocaml/branches/safe-string@14700 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02