Ian Lynagh [Sat, 9 Apr 2011 13:29:28 +0000 (14:29 +0100)]
Support fat archives on OS X
Based on the darcs patch from Greg Wright in #4828.
Ian Lynagh [Sat, 9 Apr 2011 13:42:08 +0000 (14:42 +0100)]
Add "./sync-all config" command
Ian Lynagh [Fri, 8 Apr 2011 20:05:17 +0000 (21:05 +0100)]
rts/Linker.c tidyups and debug belches
Part of the patch from #5062, from Greg Wright.
Ian Lynagh [Fri, 8 Apr 2011 18:48:26 +0000 (19:48 +0100)]
gen_contents_index: Improve parsing of packages file
We are now more lenient in parsing the packages file, and
we don't use any GNUisms. Based on a patch from Matthias Kilian.
Karel Gardas [Fri, 8 Apr 2011 16:53:42 +0000 (18:53 +0200)]
- disable shared lib support on Solaris 10 and older (fixes #4973)
Simon Marlow [Fri, 8 Apr 2011 14:54:50 +0000 (15:54 +0100)]
Force re-linking if the options have changed (#4451)
A common sequence of commands (at least for me) is this:
$ ghc hello
1 of 1] Compiling Main ( hello.hs, hello.o )
Linking hello ...
$ ./hello +RTS -s
hello: Most RTS options are disabled. Link with -rtsopts to enable them.
$ ghc hello -rtsopts
$
grr, nothing happened. I could use -fforce-recomp, but if this was a
large program I probably don't want to recompile it all again, so:
$ rm hello
removed `hello'
$ ghc hello -rtsopts
Linking hello ...
$ ./hello +RTS -s
./hello +RTS -s
Hello World!
51,264 bytes allocated in the heap
2,904 bytes copied during GC
43,808 bytes maximum residency (1 sample(s))
17,632 bytes maximum slop
etc.
With this patch, GHC notices when the options have changed and forces
a relink, so you don't need to rm the binary or use -fforce-recomp.
This is done by adding the pertinent stuff to the binary in a special
section called ".debug-ghc-link-info":
$ readelf -p .debug-ghc-link-info ./hello
String dump of section 'ghc-linker-opts':
[ 0] (["-lHSbase-4.3.1.0","-lHSinteger-gmp-0.2.0.2","-lgmp","-lHSghc-prim-0.2.0.0","-lHSrts","-lm","-lrt","-ldl","-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure","-lHSffi"],Nothing,RtsOptsAll,False,[],[])
And GHC itself uses the readelf command to extract it when deciding
whether to relink. The reason for the name ".debug-ghc-link-info" is
that sections beginning with ".debug" are removed automatically by
strip.
This currently only works on Linux; Windows and OS X still have the
old behaviour.
Ian Lynagh [Fri, 8 Apr 2011 11:47:23 +0000 (12:47 +0100)]
Handle '\r's in boot-pkgs files
By default, git will clone in autocrlf mode, which on Windows means
we get '\r's added to the ghc-packages files.
Simon Marlow [Thu, 7 Apr 2011 08:41:09 +0000 (09:41 +0100)]
bugfix for stub generation: create the directory for the _stub.h file,
not the _stub.c file, because the latter is now created as a temporary
file.
Ian Lynagh [Thu, 7 Apr 2011 19:53:06 +0000 (20:53 +0100)]
sync-all: Push doesn't take a repo path either
Ian Lynagh [Thu, 7 Apr 2011 18:40:06 +0000 (19:40 +0100)]
Merge remote branch 'origin/patch-4404'
Ian Lynagh [Wed, 6 Apr 2011 17:16:20 +0000 (18:16 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Wed, 6 Apr 2011 10:31:06 +0000 (11:31 +0100)]
sync-all: Don't give remote repo paths and branches to git pull
You can set up remotes and give them as an argument
"./sync-all pull someremote" instead. The old way meant
that the patches would be pulled, but remotes/origin/master
wouldn't be updated.
Ian Lynagh [Tue, 5 Apr 2011 16:26:20 +0000 (17:26 +0100)]
Add "commit" to the list of commands sync-all supports
Edward Z. Yang [Wed, 6 Apr 2011 15:31:44 +0000 (16:31 +0100)]
Fix bug in X86 codegen: use GMOV instead of MOV for F64 w/o SSE2.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Wed, 6 Apr 2011 13:33:30 +0000 (14:33 +0100)]
Merge remote branch 'origin'
* origin:
Revert "Suppress dumpTcRn when -dno-debug-output is enabled."
Simon Marlow [Wed, 6 Apr 2011 13:30:59 +0000 (14:30 +0100)]
Merge branch 'trac_5025' of https://github.com/thoughtpolice/ghc
* 'trac_5025' of https://github.com/thoughtpolice/ghc:
Teach GHC to compile objective-c files; trac #5025
Conflicts:
compiler/main/DriverPipeline.hs
Edward Z. Yang [Wed, 6 Apr 2011 10:52:17 +0000 (11:52 +0100)]
Revert "Suppress dumpTcRn when -dno-debug-output is enabled."
This reverts commit
12929a219671cd7794b5a533cebdfef11d2f8ff4.
Simon Marlow [Wed, 6 Apr 2011 10:27:03 +0000 (11:27 +0100)]
Merge branch 'master' of /home/simonmar/ghc-git/.
Johan Tibell [Wed, 6 Apr 2011 09:39:29 +0000 (11:39 +0200)]
Add 'sync-all grep'
Simon Marlow [Wed, 6 Apr 2011 07:42:04 +0000 (08:42 +0100)]
remove debugging output
Simon Marlow [Wed, 6 Apr 2011 09:31:58 +0000 (10:31 +0100)]
Fix -split-objs: there was a bad interaction with the recent changes
to the way stub files were handled.
Simon Marlow [Wed, 6 Apr 2011 08:30:37 +0000 (09:30 +0100)]
doc fix: -package-name is more static than dynamic. It can't be used
in a LANGUAGE pragma, but it is parsed by parseDynamicFlags, and it
can be set per-session in the GHC API. We don't have a name for this
type of flag, but from the user's point of view "static" is probably
less confusing.
Johan Tibell [Wed, 6 Apr 2011 07:29:46 +0000 (09:29 +0200)]
Add 'sync-all status' as an alias for 'sync-all whatsnew' (to match git syntax)
Johan Tibell [Wed, 6 Apr 2011 07:28:39 +0000 (09:28 +0200)]
Make sync-all work with the GitHub mirror over HTTPS
Thomas Schilling [Mon, 4 Apr 2011 13:00:54 +0000 (14:00 +0100)]
Make sync-all work with the GitHub mirror.
Edward Z. Yang [Mon, 4 Apr 2011 11:56:57 +0000 (12:56 +0100)]
CmmOpt cannot assume single assignment for hand-written or new codegen Cmm.
This change may constitute a substantial performance hit, due to the new
creation of a set for every instruction we emit.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Tue, 5 Apr 2011 16:38:51 +0000 (17:38 +0100)]
Suppress dumpTcRn when -dno-debug-output is enabled.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Tue, 5 Apr 2011 15:03:25 +0000 (16:03 +0100)]
Merge branch 'master' of /home/simonmar/ghc-git
Simon Marlow [Tue, 5 Apr 2011 14:18:47 +0000 (15:18 +0100)]
allocateRegsAndSpill: disable a panic for the time being (see comment)
Simon Marlow [Tue, 5 Apr 2011 13:45:04 +0000 (14:45 +0100)]
fix warning
Simon Marlow [Mon, 31 Jan 2011 10:32:24 +0000 (10:32 +0000)]
Merge _stub.o files into the main .o file (Fixes #3687 and #706)
Now GHC still generates the _stub.c files, but the object file is
automatically merged into the main .o file for a module. This means
that build systems (including GHC's own) no longer need to worry about
looking for _stub.o files and including them when linking.
I had to do lots of refactoring in DriverPipeline to make this work;
now there's a monad to carry around all the information, and
everything is a lot tidier.
The _stub.c is now created as a temporary file and removed after
compilation (unless the -keep-tmp-files flag is on).
Simon Marlow [Sat, 29 Jan 2011 20:03:22 +0000 (20:03 +0000)]
remove ^Ms; comment updates
Edward Z. Yang [Tue, 5 Apr 2011 12:10:00 +0000 (13:10 +0100)]
Give infinite fuel to required C-- transformations. Fixes #4971.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Tue, 5 Apr 2011 11:55:02 +0000 (12:55 +0100)]
remove set-origin and set-push commands; add "remote set-url [--push]" (to match git syntax).
Simon Marlow [Tue, 5 Apr 2011 10:08:35 +0000 (11:08 +0100)]
'fetch' and 'new' can take branch names as arguments (defaulting to 'origin')
e.g.
./sync-all -r ~/git/ghc-working remote add working
./sync-all fetch working
Simon Marlow [Tue, 5 Apr 2011 10:02:40 +0000 (11:02 +0100)]
Add "remote add" and "remote rm" commands
To add and delete remote branches from all subrepos. e.g.
./sync-all -r ~/git/ghc-working remote add working
./sync-all remote rm working
Simon Marlow [Tue, 5 Apr 2011 08:40:41 +0000 (09:40 +0100)]
suppress warning about --partial
Edward Z. Yang [Mon, 4 Apr 2011 11:58:31 +0000 (12:58 +0100)]
Fix linear register allocator bug involving read/write to same registers.
When we read a temporary value from memory, we should update its
assignment to be both in memory and in register. This was only
occurring when there was a free register, but not if we needed
to spill an existing value in a register to the stack. I generalized
the code for this case and applied it to the other two cases where
this occurs (spilled value is in memory and in a register, and when
the spilled value is only in a register.)
Furthermore, I tightened the invariants on allocRegsAndSpill_spill
with a new data type SpillLoc that captures more precisely than
Maybe Loc the possible locations we are spilling from.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Ian Lynagh [Mon, 4 Apr 2011 20:59:04 +0000 (21:59 +0100)]
Remove dead code, now that -fvia-c is a no-op
Ian Lynagh [Mon, 4 Apr 2011 16:21:51 +0000 (17:21 +0100)]
Remove redundant packages.git file
Ian Lynagh [Mon, 4 Apr 2011 16:21:36 +0000 (17:21 +0100)]
Remove redundant darcs-all script
Ian Lynagh [Mon, 4 Apr 2011 15:45:42 +0000 (16:45 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Mon, 4 Apr 2011 15:44:53 +0000 (16:44 +0100)]
Turn on autoflush in sync-all
darcs-all did it, so sync-all probably should too.
Ian Lynagh [Mon, 4 Apr 2011 15:43:54 +0000 (16:43 +0100)]
Add some comments to sync-all, based on darcs-all's comments
Edward Z. Yang [Mon, 4 Apr 2011 15:27:41 +0000 (16:27 +0100)]
Ignore tags files.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 4 Apr 2011 11:57:52 +0000 (12:57 +0100)]
Fix typos and add Outputable constraints to aid debugging.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 4 Apr 2011 11:57:30 +0000 (12:57 +0100)]
Minor documentation improvement about pointer tagging.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Mon, 4 Apr 2011 13:13:54 +0000 (14:13 +0100)]
Add "./sync-all set-push"
Use like this:
./sync-all -r me@darcs.haskell.org:/home/darcs set-push
to set the default repo to push to (in remotes/origin) for each of
the sub-repos.
Austin Seipp [Mon, 4 Apr 2011 04:02:17 +0000 (23:02 -0500)]
Teach GHC to compile objective-c files; trac #5025
Ian Lynagh [Sun, 3 Apr 2011 21:23:07 +0000 (22:23 +0100)]
Take strlen of archive filenames.
On OS X at least, the filename size is the size of the filename
field. The actual filename may be shorter.
Also a number of code style improvements and debug prints.
This is part of the patch from #5062, from Greg Wright.
Ian Lynagh [Sun, 3 Apr 2011 20:01:10 +0000 (21:01 +0100)]
Update darcs references to git in README
Ian Lynagh [Sun, 3 Apr 2011 18:04:51 +0000 (19:04 +0100)]
Fix build
Max Bolingbroke [Sun, 3 Apr 2011 17:51:28 +0000 (18:51 +0100)]
Trivial change to HACKING: github testing againh
Max Bolingbroke [Sun, 3 Apr 2011 17:46:32 +0000 (18:46 +0100)]
Trivial change to README to observe error I get during github push
Max Bolingbroke [Sun, 3 Apr 2011 17:45:02 +0000 (18:45 +0100)]
Make compilation of hscRnImportDecls conditional: fixes stage1 build
Max Bolingbroke [Sun, 3 Apr 2011 15:55:20 +0000 (16:55 +0100)]
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc
Max Bolingbroke [Sun, 3 Apr 2011 15:50:47 +0000 (16:50 +0100)]
Use tcRnImports rather than rnImports with GHCi "import" statement: fixes #4832
The bug here was that just using rnImports does not ensure that any dependent
orphan modules are loaded, so instances declared by such modules will not be
usable from the GHCi command line after an "import".
This did not affect the :m syntax because it takes a different code path and
uses getModuleExports directly, which contains its own calls to the orphan-module
loading stuff.
Ian Lynagh [Sun, 3 Apr 2011 14:23:38 +0000 (15:23 +0100)]
Fix parsing constructors containing dots; fixes trac #4891
Ian Lynagh [Sun, 3 Apr 2011 12:46:22 +0000 (13:46 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Sun, 3 Apr 2011 12:04:16 +0000 (13:04 +0100)]
Update boot scripts for git
Max Bolingbroke [Sat, 2 Apr 2011 23:04:24 +0000 (00:04 +0100)]
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc
Max Bolingbroke [Sat, 2 Apr 2011 22:59:06 +0000 (23:59 +0100)]
Prefer builtin commands to macros in GHCi command resolution (#3858)
Current precedence rules in GHCi are that:
* User macros are *always* preferred in command resolution
* User macros that are defined earlier are preferred to those that
are defined earlier on
* Builtin commands have lowest precedence
However this caused user confusion because e.g. defining a macro beginning
with "i" would override the standard :info command whenever the user typed
the abbreviated command :i.
The new precedence rules are based on the view that things defined earlier
are always preferred to things defined later. The builtin commands are logically
defined earliest of all (when GHCi starts) so they always take precedence.
Ian Lynagh [Sat, 2 Apr 2011 22:08:12 +0000 (23:08 +0100)]
Update README to talk about git rather than darcs
Max Bolingbroke [Sat, 2 Apr 2011 15:52:33 +0000 (16:52 +0100)]
Ignore names introduced "implicitly" in unused-variable warnings (Fix #4404)
We collect variables introduced by the {...} part of a let-like record wildcard
pattern and do not warn if the user then doesn't actually use them.
Ian Lynagh [Sat, 2 Apr 2011 13:19:38 +0000 (14:19 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Sat, 2 Apr 2011 13:17:17 +0000 (14:17 +0100)]
Follow changes in Cabal
Max Bolingbroke [Sat, 2 Apr 2011 10:37:12 +0000 (11:37 +0100)]
Mark scripts executable (boot, and the ones the build system chmods)
Max Bolingbroke [Sat, 2 Apr 2011 10:36:19 +0000 (11:36 +0100)]
Ignore more generated files
Max Bolingbroke [Fri, 1 Apr 2011 23:06:16 +0000 (00:06 +0100)]
Pop OS X stack padding even if the foreign call is stdcall (#5052)
The problem was that the codegen for foreign calls makes sure the stack
is 16-byte aligned on OS X by pushing some padding. In the case where the
foreign call is cdecl, that padding gets popped after the call, but if the
convention is stdcall then it doesn't generate any popping code at all.
However, this is incorrect because the stdcall only promises to pop the
arguments, not the padding. The fix is to generate code to pop the padding
(if any) on OS X.
Ian Lynagh [Fri, 1 Apr 2011 15:47:06 +0000 (16:47 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Fri, 1 Apr 2011 14:30:33 +0000 (15:30 +0100)]
Merge branch 'ticket-5028'
Ian Lynagh [Fri, 1 Apr 2011 14:16:30 +0000 (15:16 +0100)]
Really zap case-binder occurrence info: solves #5028
Converted from a darcs patch from Max Bolingbroke:
Fri Apr 1 11:39:49 BST 2011 Max Bolingbroke <batterseapower@hotmail.com>
* Really zap case-binder occurrence info: solves #5028
Simon Marlow [Fri, 1 Apr 2011 14:03:27 +0000 (15:03 +0100)]
add "./sync-all fetch" and "./sync-all new"
./sync-all fetch
Fetches remote changes from the "origin" for each sub-repo. Useful
before "./sync-all new".
(Runs 'git fetch origin' on all sub-repos.)
./sync-all new
Lists the new patches relative to "origin" for each sub-repo.
You probably want to './sync-all fetch' first.
(Runs 'git log origin..' on all sub-repos)
Simon Marlow [Fri, 1 Apr 2011 13:11:01 +0000 (14:11 +0100)]
add a "set-origin" command
Use it like this
./sync-all -r http://darcs.haskell.org/ghc-git set-origin
to set the origin branches of all sub-repos to point to the appropriate
repo within the http://darcs.haskell.org/ghc-git tree.
Simon Marlow [Fri, 1 Apr 2011 10:34:19 +0000 (11:34 +0100)]
fix 'sync-all pull'
Ian Lynagh [Thu, 31 Mar 2011 23:26:22 +0000 (00:26 +0100)]
Fix bindisttest in git
Ian Lynagh [Thu, 31 Mar 2011 22:00:53 +0000 (23:00 +0100)]
Update meta-repo stuff
dimitris@microsoft.com [Thu, 31 Mar 2011 10:26:34 +0000 (10:26 +0000)]
Introducing a datatype for WorkLists that properly prioritizes equalities.
We were not prioritizing the interaction of equalities in the worklist, because
pre-canonicalization solved the constraints one by one, in their arrival order.
This patch fixes this, so it's a generally useful improvement, mainly for
efficiency. It makes #4981 go away, although it's not a definite answer to the
cause of the problem. See discussion on Trac.
simonpj@microsoft.com [Thu, 31 Mar 2011 10:23:15 +0000 (10:23 +0000)]
Fix Trac #5048: location on AbsBinds
This patch just puts a better SrcSpan on the AbsBinds
produced by the type checker
simonpj@microsoft.com [Thu, 31 Mar 2011 10:22:24 +0000 (10:22 +0000)]
Comments and variable naming only
simonpj@microsoft.com [Thu, 31 Mar 2011 10:21:16 +0000 (10:21 +0000)]
Re-enable assertion now the new type checker is in
(See Trac #3011.)
simonpj@microsoft.com [Thu, 31 Mar 2011 10:15:55 +0000 (10:15 +0000)]
Add a new static flag -fno-opt-coercion
This just disables the coercion optimiser, mainly for measurements in the paper
simonpj@microsoft.com [Thu, 31 Mar 2011 10:15:22 +0000 (10:15 +0000)]
New statistics flags -ddump-core-stats
This dumps a (one-line) listing of the size of the Core program,
just after tidying
Simon Marlow [Wed, 30 Mar 2011 09:23:42 +0000 (09:23 +0000)]
Windows build fix: ignore pthread.h if it exists (#4989)
Simon Marlow [Wed, 30 Mar 2011 10:19:34 +0000 (10:19 +0000)]
Add a debug check for a non-empty FPU stack on x86 (see #4914)
Simon Marlow [Wed, 30 Mar 2011 10:18:09 +0000 (10:18 +0000)]
implement double-to-float narrowing in the x86 NCG (#4441)
Simon Marlow [Wed, 30 Mar 2011 10:11:47 +0000 (10:11 +0000)]
scheduleThreadOn: use TSO_LOCKED even on the non-threaded RTS
Simon Marlow [Tue, 29 Mar 2011 15:56:28 +0000 (15:56 +0000)]
add atexit (#4456)
Ian Lynagh [Tue, 29 Mar 2011 17:01:58 +0000 (17:01 +0000)]
Turn -vfia-C into a no-op
Ian Lynagh [Tue, 29 Mar 2011 17:01:34 +0000 (17:01 +0000)]
Remove -fvia-C references from the users guide
Ian Lynagh [Tue, 29 Mar 2011 16:44:41 +0000 (16:44 +0000)]
Add a tool for checking for problems in the built-in uniques
Ian Lynagh [Tue, 29 Mar 2011 16:18:07 +0000 (16:18 +0000)]
Renumber TH uniques
This fixes a couple of duplicates that had crept in, and also
renumbers everything so that they are monotonically increasing
through the file.
Ian Lynagh [Mon, 28 Mar 2011 22:58:05 +0000 (22:58 +0000)]
Whitespace only
Simon Marlow [Tue, 29 Mar 2011 11:55:12 +0000 (11:55 +0000)]
fix typo (#5056)
Ian Lynagh [Sun, 27 Mar 2011 18:35:36 +0000 (18:35 +0000)]
Add a script for library merging
Ian Lynagh [Sun, 27 Mar 2011 15:52:05 +0000 (15:52 +0000)]
bindist comparison tool: Some logic improvements, and testsuite support
Ian Lynagh [Sat, 26 Mar 2011 21:01:10 +0000 (21:01 +0000)]
Fix the build on Windows (disable hsc2hs --cross-safe)
The .hsc files aren't currently safe for cross-compilation on Windows:
libraries\haskeline\.\System\Console\Haskeline\Backend\Win32.hsc:160
directive "let" is not safe for cross-compilation
Ian Lynagh [Fri, 25 Mar 2011 15:53:54 +0000 (15:53 +0000)]
Bindist comparison tool: Recognise OS X .dylib files too
Simon Marlow [Fri, 25 Mar 2011 16:12:34 +0000 (16:12 +0000)]
Fix #4914 (I hope)
Here's a bit of erroneous code:
00000c5c <s1ad_info>:
c5c: 8b 45 08 mov 0x8(%ebp),%eax
c5f: d9 46 03 flds 0x3(%esi)
c62: dd d9 fstp %st(1)
c64: d9 55 08 fsts 0x8(%ebp)
c67: 89 c6 mov %eax,%esi
c69: c7 45 00 24 0c 00 00 movl $0xc24,0x0(%ebp)
c70: f7 c6 03 00 00 00 test $0x3,%esi
c76: 75 ac jne c24 <s1ac_info>
So we should be doing some ffrees before the jne. The code that
inserts the ffrees wasn't expecting to do it for a conditional jump,
because they are usually local, but we have a late optimisation that
shortcuts jumps-to-jumps, and that can result in a non-local
conditional jump.
This at least fixes an instance of the bug that I was able to
reproduce, let's hope there aren't any more.
Edward Z. Yang [Fri, 25 Mar 2011 12:01:08 +0000 (12:01 +0000)]
Ignore comments when inlining.