diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-08-23 09:47:37 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-23 09:47:37 +0000 |
| commit | 3fdb045267c3014c8dab905c104840f8471b3a69 (patch) | |
| tree | 54e5b716fdbf77f00cc5dba93006c1fa825fab98 /lib/Target/ARM/ARMJITInfo.cpp | |
| parent | 0171fda31b44e14be7724066e17d56a13e4b3134 (diff) | |
| download | external_llvm-3fdb045267c3014c8dab905c104840f8471b3a69.zip external_llvm-3fdb045267c3014c8dab905c104840f8471b3a69.tar.gz external_llvm-3fdb045267c3014c8dab905c104840f8471b3a69.tar.bz2 | |
Fix non-determinism in DAGISel emitter.
- This manifested as non-determinism in the .inc output in rare cases (when two
distinct patterns ended up being equivalent, which is rather rare). That
meant the pattern matching was non-deterministic, which could eventually mean
the code generator selected different instructions based on the arch.
- It's probably worth making the DAGISel ensure a total ordering (or force the
user to), but the simple fix here is to totally order the Record* maps based
on a unique ID.
- PR4672, PR4711.
Yay:
--
ddunbar@giles:~$ cat ~/llvm.obj.64/lib/Target/*/*.inc | shasum
d1099ff34b21459a5a3e7021c225c080e6017ece -
ddunbar@giles:~$ cat ~/llvm.obj.ppc/lib/Target/*/*.inc | shasum
d1099ff34b21459a5a3e7021c225c080e6017ece -
--
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79846 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMJITInfo.cpp')
0 files changed, 0 insertions, 0 deletions
