(in-package :cmp)

(eval-when (:compile-toplevel :load-toplevel :execute)
(export '(with-debug-info-source-position
          code-walk
          calculate-cleavir-lambda-list-analysis
          module-report
          transform-lambda-parts
          codegen-startup-shutdown
          jit-repl-function-name
          unescape-and-split-jit-name
          irc-simple-function-create
          find-intrinsic-name
          +intrinsic/llvm.eh.typeid.for.p0+
          +intrinsic/llvm.stacksave.p0+
          +intrinsic/llvm.stackrestore.p0+
          *primitives*
          primitive-argument-types
          primitive-varargs
          *track-inlined-functions*
          *track-inlinee-name*
          *compile-file-debug-dump-module* ;; Dump intermediate modules
          *compile-debug-dump-module* ;; Dump intermediate modules
          *default-linkage*
          *compile-file-parallel-write-bitcode*
          *default-compile-linkage*
          quick-module-dump
          code-model
          write-bitcode
          parse-bitcode
          link-bitcode-modules-together
          *irbuilder*
          *compile-file-unique-symbol-prefix*
          *optimize* *policy*
          policy ; used as a doc-type
          %ltv*%
          irc-function-create
          irc-make-function-description
          irc-local-function-create
          irc-xep-functions-create
          make-xep-group
          xep-group-p
          xep-group-arities
          xep-group-name
          xep-group-generator
          xep-group-cleavir-lambda-list-analysis
          +c++-stamp-max+
          %opaque-fn-prototype*%
          fn-prototype
          *btb-compile-hook*
          *compile-print*
          *current-function*
          *current-function-name*
          *current-unwind-landing-pad-dest*
          *debug-compile-file*
          *debug-compile-file-counter*
          *generate-compile-file-load-time-values*
          *gv-current-function-name*
          *thread-safe-context*
          with-thread-safe-context
          *load-time-value-holder-global-var-type*
          *load-time-value-holder-global-var*
          *low-level-trace*
          *low-level-trace-print*
          *the-module*
          +header-size+
          +header-stamp-size+
          +header-stamp-offset+
          +ptag-mask+ +immediate-mask+
          +cons-tag+
          +fixnum-mask+
          +fixnum-shift+
          +fixnum00-tag+
          +fixnum01-tag+
          #+tag-bits4 +fixnum10-tag+
          #+tag-bits4 +fixnum11-tag+
          +character-shift+
          +character-tag+
          +alignment+
          #+tag-bits4 +vaslist-ptag-mask+
          +vaslist0-tag+
          #+tag-bits4 +vaslist1-tag+
          +single-float-tag+
          +character-tag+
          +general-tag+
          +where-tag-mask+
          +derivable-where-tag+
          +rack-where-tag+
          +wrapped-where-tag+
          +header-where-tag+
          +literal-tag-char-code+
          +cons-size+
          +vaslist-size+ +vaslist-alignment+
          +unwind-protect-dynenv-size+
          +binding-dynenv-size+
          +catch-dynenv-size+
          +progv-dynenv-size+
          +void*-size+
          %void%
          %i1%
          %exception-struct%
          %i16%
          %i32%
          %i32*%
          %i64%
          %i8**%
          %i8*%
          %i8%
          %exn%
          %ehselector%
          %go-index%
          %fixnum%
          %word%
          %mv-struct%
          %size_t%
          %t*%
          %t*[0]%
          %tsp%
          %t*[0]*%
          %tsp*%
          %t**%
          %t*[DUMMY]%
          %t*[DUMMY]*%
          %tmv%
          %symbol%
          %float%
          %double%
          %function-description%
          %function-description*%
          irc-funcall-results-in-registers
          irc-apply
          function-type-create-on-the-fly
          evaluate-foreign-arguments
          calling-convention-closure
          calling-convention-vaslist*
          calling-convention-vaslist.va-arg
          calling-convention-nargs
          calling-convention-register-args
          make-file-metadata
          make-function-metadata
          function-info
          function-info-cleavir-lambda-list-analysis
          make-function-info
          generate-function-for-arity-p

          irc-create-call-wft
          irc-calculate-entry
          compile-definition
          codegen
          compile-error-if-not-enough-arguments
          compile-lambda-function
          compile-lambda-list-code
          make-calling-convention
          compiler-error
          compiler-warn
          compiler-style-warn
          note
          define-primitive
          warn-undefined-global-variable
          warn-undefined-type
          warn-cannot-coerce
          warn-invalid-number-type
          warn-icsp-iesp-both-specified
          register-global-function-def
          register-global-function-ref
          known-function-p
          safe-system
          system-data-layout
          jit-constant-uintptr_t
          irc-const-gep2-64
          irc-sext
          irc-zext
          irc-int-to-ptr
          irc-ptr-to-int
          irc-verify-module-safe
          irc-verify-function
          *suppress-llvm-output*
          *optimization-level*
          with-track-llvm-time
          irc-add
          irc-sub
          irc-mul
          irc-sdiv irc-srem
          irc-udiv irc-urem
          irc-shl irc-lshr irc-ashr
          irc-add-clause
          alloca
          alloca-t*
          alloca-exn
          alloca-ehselector
          alloca-go-index
          alloca-i8
          alloca-i8*
          alloca-i32
          alloca-size_t
          alloca-return
          alloca-vaslist
          alloca-temp-values
          alloca-arguments
          irc-and
          irc-or
          irc-xor
          irc-not
          irc-basic-block-create
          irc-begin-block
          irc-br
          irc-branch-to-and-begin-block
          irc-cond-br
          irc-call-or-invoke
          irc-intrinsic-call-or-invoke
          irc-bit-cast
          irc-pointer-cast
          irc-maybe-cast-integer-to-t*
          irc-create-landing-pad
          irc-exception-typeid*
          irc-insert-value
          irc-extract-value
          irc-typed-gep
          irc-typed-gep-variable
          irc-smart-ptr-extract
          irc-get-insert-block
          irc-set-insert-point-basic-block
          irc-size_t-*current-source-pos-info*-filepos
          irc-size_t-*current-source-pos-info*-column
          irc-size_t-*current-source-pos-info*-lineno
          irc-icmp-eq
          irc-icmp-ne
          irc-icmp-ule
          irc-icmp-ult
          irc-icmp-uge
          irc-icmp-ugt
          irc-icmp-sle
          irc-icmp-slt
          irc-icmp-sge
          irc-icmp-sgt
          irc-intrinsic
          irc-typed-load
          irc-t*-load
          irc-typed-load-atomic
          irc-t*-load-atomic
          irc-phi
          irc-personality-function
          irc-phi-add-incoming
          irc-ret-void
          irc-ret-null-t*
          irc-ret
          irc-undef-value-get
          irc-store
          irc-store-atomic
          irc-cmpxchg
          irc-struct-gep
          vaslist-start
          irc-read-slot
          irc-write-slot
          irc-make-tmv
          irc-tmv-primary
          irc-tmv-nret
          irc-t*-result
          irc-tmv-result
          irc-make-vaslist
          irc-vaslist-nvals
          irc-vaslist-values
          irc-vaslist-nth
          irc-vaslist-nthcdr
          irc-vaslist-last
          irc-vaslist-butlast
          irc-tag-vaslist
          irc-unbox-vaslist
          irc-header-stamp
          irc-rack-stamp
          irc-wrapped-stamp
          irc-derivable-stamp
          irc-switch
          irc-add-case
          irc-tag-fixnum
          irc-tag-base-char
          irc-untag-base-char
          irc-tag-character
          irc-untag-character
          irc-trunc
          irc-unreachable
          irc-untag-fixnum
          irc-untag-general
          irc-untag-cons
          irc-untag-vaslist
          irc-tag-vaslist
          irc-unbox-vaslist
          irc-unbox-single-float
          irc-box-single-float
          irc-unbox-double-float
          irc-box-double-float
          irc-fdefinition
          irc-setf-fdefinition
          irc-real-array-displacement
          irc-real-array-index-offset
          irc-array-total-size
          irc-array-rank
          gen-%array-dimension
          gen-instance-rack
          gen-instance-rack-set
          gen-rack-ref
          gen-rack-set
          gen-vaslist-pop
          gen-vaslist-length
          jit-constant-i1
          jit-constant-i8
          jit-constant-i32
          jit-constant-i64
          *default-function-attributes*
          ensure-jit-constant-i64
          jit-constant-size_t
          jit-constant-unique-string-ptr
          module-make-global-string
          make-boot-function-global-variable
          setup-calling-convention
          initialize-calling-convention
          ensure-cleavir-lambda-list-analysis
          process-cleavir-lambda-list-analysis
          cleavir-lambda-list-analysis-cleavir-lambda-list
          cleavir-lambda-list-analysis-rest
          process-bir-lambda-list
          typeid-core-unwind
          typeid-core-catch-throw
          *dbg-generate-dwarf*
          *dbg-current-function-metadata*
          *dbg-current-function-lineno*
          *dbg-current-scope*
          with-guaranteed-*current-source-pos-info*
          with-dbg-function
          with-dbg-lexical-block
          dbg-variable-alloca
          dbg-variable-value
          c++-field-offset
          c++-field-index
          c++-struct-type
          c++-struct*-type
          c++-field-ptr
          %closure%.offset-of[n]/t*
          with-debug-info-generator
          with-irbuilder
          with-landing-pad
          make-uintptr_t
          +cons-car-offset+
          +cons-cdr-offset+
          +simple-vector._length-offset+
          +entry-point-arity-begin+
          +entry-point-arity-end+
          +number-of-entry-points+
          %uintptr_t%
          %return-type%
          %vaslist%
          null-t-ptr
          compile-error-if-too-many-arguments
          *irbuilder-function-alloca*
          irc-calculate-call-info
          %RUN-AND-LOAD-TIME-VALUE-HOLDER-GLOBAL-VAR-TYPE%
          compute-rest-alloc
          tag-check-cond
          header-check-cond
          compile-tag-check
          compile-header-check
          general-entry-point-redirect-name
          get-or-declare-function-or-error
          ))

;;; exports for conditions
(export '(deencapsulate-compiler-condition
          *default-condition-origin*
          compiler-condition-origin
          compiled-program-error
          compiler-condition
          undefined-variable-warning
          undefined-function-warning
          undefined-type-warning
          redefined-function-warning
          wrong-argcount-warning
          compiler-macro-expansion-error-warning
          unused-variable used-variable
          fold-failure
          native-compilation-failure))

;;; save hooks
(export '(register-save-hook))

;;; bundle
(export '(builder build-fasl))

;;; Eclector
(export '(clasp-eclector-client-mixin))

;;; bytecode
(export '(*compile-file-native*))
) ; eval-when
