llvm/lib/Transforms
Chris Lattner 1654cff8e8 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14243 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-19 07:02:14 +00:00
..
Hello Finegrainify namespacification 2004-01-09 06:12:26 +00:00
Instrumentation Expand head-of-file comment. 2004-06-03 05:03:02 +00:00
IPO Do not function resolve intrinsics. This prevents warnings and possible bad 2004-06-18 05:50:48 +00:00
Scalar Do not loop over uses as we delete them. This causes iterators to be 2004-06-19 02:02:22 +00:00
Utils Do not sort by the address of LLVM ConstantInt* objects. This produces 2004-06-19 07:02:14 +00:00
ExprTypeConvert.cpp Support getelementptr instructions which use uint's to index into structure 2004-04-05 01:30:19 +00:00
LevelRaise.cpp Support getelementptr instructions which use uint's to index into structure 2004-04-05 01:30:19 +00:00
Makefile Added LLVM copyright notice to Makefiles. 2003-10-20 22:26:57 +00:00
TransformInternals.cpp Support getelementptr instructions which use uint's to index into structure 2004-04-05 01:30:19 +00:00
TransformInternals.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00