diff options
| author | Chris Lattner <sabre@nondot.org> | 2004-06-19 07:02:14 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2004-06-19 07:02:14 +0000 |
| commit | b2b151d2975d9712f35aad25cd11563216dca898 (patch) | |
| tree | 81d73b59f72bafaddf0e533b3d8e9f2c560cdb72 /llvm/lib/Transforms/TransformInternals.cpp | |
| parent | b5f8eb8315ca590baa2fa607f5fcc68042af7df6 (diff) | |
| download | bcm5719-llvm-b2b151d2975d9712f35aad25cd11563216dca898.tar.gz bcm5719-llvm-b2b151d2975d9712f35aad25cd11563216dca898.zip | |
Do not sort by the address of LLVM ConstantInt* objects. This produces
nondeterministic results that depend on where these objects land in memory.
Instead, sort by the value of the constant, which is stable.
Before this patch, the -simplifycfg pass run from two different compilers
could cause different code to be generated, though it was semantically the
same:
@@ -12258,8 +12258,8 @@
%s_addr.1 = phi sbyte* [ %s, %entry ], [ %inc.0, %no_exit ] ; <sbyte*> [#uses=5]
%tmp.1 = load sbyte* %s_addr.1 ; <sbyte> [#uses=1]
switch sbyte %tmp.1, label %no_exit [
- sbyte 0, label %loopexit
sbyte 46, label %loopexit
+ sbyte 0, label %loopexit
]
We need to stomp all of this stuff out.
llvm-svn: 14243
Diffstat (limited to 'llvm/lib/Transforms/TransformInternals.cpp')
0 files changed, 0 insertions, 0 deletions

