Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cut features out of our LLVM build #1274

Closed
brson opened this issue Dec 8, 2011 · 2 comments
Closed

Cut features out of our LLVM build #1274

brson opened this issue Dec 8, 2011 · 2 comments
Labels
E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.

Comments

@brson
Copy link
Contributor

brson commented Dec 8, 2011

We are building some features that we don't need, like JIT. I'm sure trimming down the LLVM build would be appreciated.

@thoughtpolice
Copy link
Contributor

Here's all the optional features, as defined by llvm's ./configure:

Optional Features:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-polly          Use polly if available (default is YES)
  --enable-libcpp         Use libc++ if available (default is NO)
  --enable-optimized      Compile with optimizations enabled (default is NO)
  --enable-profiling      Compile with profiling enabled (default is NO)
  --enable-assertions     Compile with assertion checks enabled (default is
                          YES)
  --enable-expensive-checks
                          Compile with expensive debug checks enabled (default
                          is NO)
  --enable-debug-runtime  Build runtime libs with debug symbols (default is
                          NO)
  --enable-debug-symbols  Build compiler with debug symbols (default is NO if
                          optimization is on and YES if it's off)
  --enable-jit            Enable Just In Time Compiling (default is YES)
  --enable-docs           Build documents (default is YES)
  --enable-doxygen        Build doxygen documentation (default is NO)
  --enable-threads        Use threads if available (default is YES)
  --enable-pthreads       Use pthreads if available (default is YES)
  --enable-pic            Build LLVM with Position Independent Code (default
                          is YES)
  --enable-shared         Build a shared library and link tools against it
                          (default is NO)
  --enable-embed-stdcxx   Build a shared library with embedded libstdc++ for
                          Win32 DLL (default is NO)
  --enable-timestamps     Enable embedding timestamp information in build
                          (default is YES)
  --enable-targets        Build specific host targets: all or
                          target1,target2,... Valid targets are: host, x86,
                          x86_64, sparc, powerpc, arm, mips, spu, xcore,
                          msp430, ptx, cbe, and cpp (default=all)
  --enable-cbe-printf-a   Enable C Backend output with hex floating point via
                          %a (default is YES)
  --enable-bindings       Build specific language bindings:
                          all,auto,none,{binding-name} (default=auto)
  --enable-libffi         Check for the presence of libffi (default is NO)
  --enable-ltdl-install   install libltdl

Out of all these, I think the only ones we can really disable that are on by default are:

  • Threads (unneeded for the compiler as it isn't multithreaded)
  • All language bindings (automatically built if you have ocaml, for example)
  • JIT
  • Timestamps (but I'm willing to bet this is almost totally negligable.)

I've got a patch with the above (modulo the timestamping) that I'm currently building and validating the test suite against. Will open pull request soon.

brson pushed a commit that referenced this issue Dec 10, 2011
Issue #1274 - should make the build a wee bit faster.
@brson
Copy link
Contributor Author

brson commented Dec 10, 2011

Fixed in 638b514. Thanks, thoughtpolice.

@brson brson closed this as completed Dec 10, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
Projects
None yet
Development

No branches or pull requests

2 participants