annotate gen/passes/Passes.h @ 1512:09734fb929c0

Make == for associative arrays test for equality, not identity. _aaEq was added to runtime/internal/aaA.d which forwards to TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp. I assume that the frontend will produce an error if == is used on associative arrays of different type. This fixes DMD bug 1429.
author Christian Kamm <kamm incasoftware de>
date Sun, 21 Jun 2009 19:05:24 +0200
parents defafbabbe32
children c88b16d4a13c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1275
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
1 #ifndef LDC_PASSES_H
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
2 #define LDC_PASSES_H
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
3
1287
6c8af78364f5 There's an issue with LLVM metadata support; it triggers an assert when trying
Frits van Bommel <fvbommel wxs.nl>
parents: 1285
diff changeset
4 #include "gen/metadata.h"
1275
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
5 namespace llvm {
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
6 class FunctionPass;
1287
6c8af78364f5 There's an issue with LLVM metadata support; it triggers an assert when trying
Frits van Bommel <fvbommel wxs.nl>
parents: 1285
diff changeset
7 class ModulePass;
1275
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
8 }
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
9
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
10 // Performs simplifications on runtime calls.
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
11 llvm::FunctionPass* createSimplifyDRuntimeCalls();
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
12
1287
6c8af78364f5 There's an issue with LLVM metadata support; it triggers an assert when trying
Frits van Bommel <fvbommel wxs.nl>
parents: 1285
diff changeset
13 #ifdef USE_METADATA
1288
e109e4031e8a Fix build when USE_METADATA is off.
Matti Niemenmaa <matti.niemenmaa+hg@iki.fi>
parents: 1287
diff changeset
14 llvm::FunctionPass* createGarbageCollect2Stack();
1483
defafbabbe32 Add a pass to strip the bodies of `available_externally` functions so string
Frits van Bommel <fvbommel wxs.nl>
parents: 1288
diff changeset
15 llvm::ModulePass* createStripMetaData();
1287
6c8af78364f5 There's an issue with LLVM metadata support; it triggers an assert when trying
Frits van Bommel <fvbommel wxs.nl>
parents: 1285
diff changeset
16 #endif
6c8af78364f5 There's an issue with LLVM metadata support; it triggers an assert when trying
Frits van Bommel <fvbommel wxs.nl>
parents: 1285
diff changeset
17
1483
defafbabbe32 Add a pass to strip the bodies of `available_externally` functions so string
Frits van Bommel <fvbommel wxs.nl>
parents: 1288
diff changeset
18 #if LLVM_REV >= 68940
defafbabbe32 Add a pass to strip the bodies of `available_externally` functions so string
Frits van Bommel <fvbommel wxs.nl>
parents: 1288
diff changeset
19 llvm::ModulePass* createStripExternalsPass();
defafbabbe32 Add a pass to strip the bodies of `available_externally` functions so string
Frits van Bommel <fvbommel wxs.nl>
parents: 1288
diff changeset
20 #endif
1275
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
21
bedf0bfb8fdb Implement first D-specific optimization pass: -simplify-drtcalls.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
22 #endif