15 e_createAliasAnalysisCounterPass,
16 e_createBasicAliasAnalysisPass,
17 e_createCFGOnlyPrinterPass,
18 e_createCFGPrinterPass,
19 e_createDbgInfoPrinterPass,
20 e_createDomOnlyPrinterPass,
21 e_createDomPrinterPass,
22 e_createGlobalsModRefPass,
23 e_createInstCountPass,
25 e_createLazyValueInfoPass,
26 e_createLibCallAliasAnalysisPass,
28 e_createLoopDependenceAnalysisPass,
29 e_createMemDepPrinter,
30 e_createModuleDebugInfoPrinterPass,
32 e_createNoPathProfileInfoPass,
33 e_createNoProfileInfoPass,
34 e_createObjCARCAliasAnalysisPass,
35 e_createPathProfileLoaderPass,
36 e_createPathProfileVerifierPass,
37 e_createPostDomOnlyPrinterPass,
38 e_createPostDomPrinterPass,
39 e_createProfileEstimatorPass,
40 e_createProfileLoaderPass,
41 e_createProfileVerifierPass,
42 e_createRegionInfoPass,
43 e_createRegionOnlyPrinterPass,
44 e_createRegionPrinterPass,
45 e_createScalarEvolutionAliasAnalysisPass,
46 e_createTypeBasedAliasAnalysisPass
51 t_createAggressiveDCEPass,
52 t_createArgumentPromotionPass,
53 t_createBBVectorizePass,
54 t_createBlockExtractorPass,
55 t_createBlockPlacementPass,
56 t_createBreakCriticalEdgesPass,
57 t_createCFGSimplificationPass,
58 t_createCodeGenPreparePass,
59 t_createConstantMergePass,
60 t_createConstantPropagationPass,
61 t_createCorrelatedValuePropagationPass,
62 t_createDeadArgEliminationPass,
63 t_createDeadArgHackingPass,
64 t_createDeadCodeEliminationPass,
65 t_createDeadInstEliminationPass,
66 t_createDeadStoreEliminationPass,
67 t_createDemoteRegisterToMemoryPass,
69 t_createFunctionAttrsPass,
70 t_createFunctionInliningPass,
71 t_createGlobalDCEPass,
72 t_createGlobalOptimizerPass,
73 t_createGVExtractionPass,
75 t_createIndVarSimplifyPass,
76 t_createInstructionCombiningPass,
77 t_createInstructionNamerPass,
78 t_createInstructionSimplifierPass,
79 t_createInternalizePass,
80 t_createIPConstantPropagationPass,
82 t_createJumpThreadingPass,
85 t_createLoopDeletionPass,
86 t_createLoopExtractorPass,
87 t_createLoopIdiomPass,
88 t_createLoopInstSimplifyPass,
89 t_createLoopRotatePass,
90 t_createLoopSimplifyPass,
91 t_createLoopStrengthReducePass,
92 t_createLoopUnrollPass,
93 t_createLoopUnswitchPass,
94 t_createLowerAtomicPass,
95 t_createLowerExpectIntrinsicPass,
96 t_createLowerInvokePass,
97 t_createLowerSwitchPass,
98 t_createMemCpyOptPass,
99 t_createMergeFunctionsPass,
100 t_createObjCARCAPElimPass,
101 t_createObjCARCContractPass,
102 t_createObjCARCExpandPass,
103 t_createObjCARCOptPass,
104 t_createPartialInliningPass,
105 t_createPromoteMemoryToRegisterPass,
107 t_createReassociatePass,
108 t_createScalarReplAggregatesPass,
110 t_createSimplifyLibCallsPass,
111 t_createSingleLoopExtractorPass,
113 t_createStripDeadDebugInfoPass,
114 t_createStripDeadPrototypesPass,
115 t_createStripDebugDeclarePass,
116 t_createStripNonDebugSymbolsPass,
117 t_createStripSymbolsPass,
118 t_createTailCallEliminationPass
119} enumTransformPasses;
133 CONTINUOUS_COMPILATION,
167 ON_PROFILED_INTERPRETER = 2,
173typedef struct printt_struc {
181typedef struct environment {
186 Int time_pass_enabled;
187 enumPointToVerifiy pointtoverifymodule;
189 enumAnalysisPasses *act_an;
196 enumTransformPasses *act_tr;
198 CELL arg_promotion_max_elements;
199 CELL strip_symbols_pass_type;
200 CELL scalar_replace_aggregates_threshold;
201 CELL loop_unswitch_optimize_for_size;
202 CELL loop_unroll_threshold;
203 CELL inline_threshold;
205 Int unit_at_time_enabled;
206 Int simplify_libcalls_enabled;
217 Int noframepointerelim;
218 Int lessprecisefpmadoption;
219 Int noexcessfpprecision;
221 Int honorsigndependentroundingfpmathoption;
223 Int jitexceptionhandling;
224 Int jitemitdebuginfo;
225 Int jitemitdebuginfotodisk;
226 Int guaranteedtailcallopt;
227 Int disabletailcalls;
236 enumRegAllocator regallocator;
237 } struc_enginebuilder;
242 enumExecModes execution_mode;
243 enumFrequencyType frequency_type;
244 Float frequency_bound;
245 Float profiling_startp;
246 enumMainClauseType mainclause_ty;
248 COUNT compilation_threads;
249 pthread_t* threaded_compiler_threads;
252 Int current_displacement;
253 COUNT TOTAL_OF_OPCODES;
260 int papi_initialized;
262 long long *papi_values;
263 short *papi_valid_values;
272 #define OPCODE(OP,TYPE) \
273 PrinttStruc pyaam_##OP;
274 #include "YapAppliedOpcodes.h"
279 PrinttStruc pbbs_##BB;
280 #include "Yap_AppliedBasicBlocks.h"
284 PrinttStruc pmainclause_on_head;
292 } pprint_intermediate;
296 Int print_llva_before;
297 Int print_llva_after;
302 CELL interpreted_backtrack;
303 CELL profiled_interpreted_backtrack;
304 CELL native_backtrack;
305 CELL interpreted_treat_heap;
306 CELL native_treat_heap;
307 CELL interpreted_treat_trail;
308 CELL native_treat_trail;
311 CELL at_recompilation;
313 CELL nativerun_exit_by_success;
314 CELL nativerun_exit_by_fail;
323 } act_predicate_msgs;
328 Int disable_on_warning;
330 } act_predicate_actions;
337typedef enum block_try {
346typedef struct blocks_context {
364 struct blocks_context *_if;
365 struct blocks_context *_else;
395typedef struct trace_context {
402typedef struct intermediatecode_context {
408 BlocksContext** lastblock;
410 double* profiling_time;
413} IntermediatecodeContext;
416typedef struct native_context {
424 double **compilation_time;
425 CELL **native_size_bytes;
426 CELL **trace_size_bytes;
442typedef struct control_flags_context {
444 char** emited_blocks;
452} ControlFlagsContext;
456typedef struct jit_handl_context {
461 CELL backtrack_counter;
481 ControlFlagsContext* cf;
491extern void **Yap_ABSMI_ControlLabels;
493extern Environment *Yap_ExpEnvP;
495#define ExpEnv (*Yap_ExpEnvP)