diff --git a/.travis.yml b/.travis.yml
index 01d0f512a906642fbcf016b3b285350c91a1b528..2d3c0281e979f350a60b15294e4942963c6e2853 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,85 +8,162 @@ env:
   global:
     - LLVM_CONFIG=llvm-config-3.8
   matrix:
-    - BINDINGS=none
+    - BINDINGS=none LLVM_BACKEND=0
+    - BINDINGS=none LLVM_BACKEND=1
 matrix:
   include:
     - compiler: gcc
       language: ruby
       rvm: ruby-2.2.5
-      env: BINDINGS=ruby
+      env: BINDINGS=ruby LLVM_BACKEND=0
+    - compiler: gcc
+      language: ruby
+      rvm: ruby-2.2.5
+      env: BINDINGS=ruby LLVM_BACKEND=1
     - compiler: clang
       language: ruby
       rvm: ruby-2.2.5
-      env: BINDINGS=ruby CC=clang
+      env: BINDINGS=ruby CC=clang LLVM_BACKEND=0
+    - compiler: clang
+      language: ruby
+      rvm: ruby-2.2.5
+      env: BINDINGS=ruby CC=clang LLVM_BACKEND=1
+    - compiler: gcc
+      language: ruby
+      rvm: ruby-2.3.1
+      env: BINDINGS=ruby LLVM_BACKEND=0
     - compiler: gcc
       language: ruby
       rvm: ruby-2.3.1
-      env: BINDINGS=ruby
+      env: BINDINGS=ruby LLVM_BACKEND=1
     - compiler: clang
       language: ruby
       rvm: ruby-2.3.1
-      env: BINDINGS=ruby CC=clang
+      env: BINDINGS=ruby CC=clang LLVM_BACKEND=0
+    - compiler: clang
+      language: ruby
+      rvm: ruby-2.3.1
+      env: BINDINGS=ruby CC=clang LLVM_BACKEND=1
+    - compiler: gcc
+      language: python
+      python: "2.7"
+      env: BINDINGS=python LLVM_BACKEND=0
     - compiler: gcc
       language: python
       python: "2.7"
-      env: BINDINGS=python
+      env: BINDINGS=python LLVM_BACKEND=1
+    - compiler: clang
+      language: python
+      python: "2.7"
+      env: BINDINGS=python CC=clang LLVM_BACKEND=0
     - compiler: clang
       language: python
       python: "2.7"
-      env: BINDINGS=python CC=clang
+      env: BINDINGS=python CC=clang LLVM_BACKEND=1
+    - compiler: gcc
+      language: perl
+      perl: "5.18"
+      env: BINDINGS=perl LLVM_BACKEND=0
     - compiler: gcc
       language: perl
       perl: "5.18"
-      env: BINDINGS=perl
+      env: BINDINGS=perl LLVM_BACKEND=1
     - compiler: clang
       language: perl
       perl: "5.18"
-      env: BINDINGS=perl CC=clang
+      env: BINDINGS=perl CC=clang LLVM_BACKEND=0
+    - compiler: clang
+      language: perl
+      perl: "5.18"
+      env: BINDINGS=perl CC=clang LLVM_BACKEND=1
     - compiler: gcc
       language: perl
       perl: "5.14"
-      env: BINDINGS=perl
+      env: BINDINGS=perl LLVM_BACKEND=0
+    - compiler: gcc
+      language: perl
+      perl: "5.14"
+      env: BINDINGS=perl LLVM_BACKEND=1
+    - compiler: clang
+      language: perl
+      perl: "5.14"
+      env: BINDINGS=perl CC=clang LLVM_BACKEND=0
     - compiler: clang
       language: perl
       perl: "5.14"
-      env: BINDINGS=perl CC=clang
+      env: BINDINGS=perl CC=clang LLVM_BACKEND=1
     - compiler: gcc
       language: perl
       perl: "5.10"
-      env: BINDINGS=perl
+      env: BINDINGS=perl LLVM_BACKEND=0
+    - compiler: gcc
+      language: perl
+      perl: "5.10"
+      env: BINDINGS=perl LLVM_BACKEND=1
+    - compiler: clang
+      language: perl
+      perl: "5.10"
+      env: BINDINGS=perl CC=clang LLVM_BACKEND=0
     - compiler: clang
       language: perl
       perl: "5.10"
-      env: BINDINGS=perl CC=clang
+      env: BINDINGS=perl CC=clang LLVM_BACKEND=1
+    - compiler: gcc
+      language: php
+      php: "5.5"
+      env: BINDINGS=php LLVM_BACKEND=0
     - compiler: gcc
       language: php
       php: "5.5"
-      env: BINDINGS=php
+      env: BINDINGS=php LLVM_BACKEND=1
+    - compiler: clang
+      language: php
+      php: "5.5"
+      env: BINDINGS=php CC=clang LLVM_BACKEND=0
     - compiler: clang
       language: php
       php: "5.5"
-      env: BINDINGS=php CC=clang
+      env: BINDINGS=php CC=clang LLVM_BACKEND=1
     - compiler: gcc
       language: php
       php: "5.4"
-      env: BINDINGS=php
+      env: BINDINGS=php LLVM_BACKEND=0
+    - compiler: gcc
+      language: php
+      php: "5.4"
+      env: BINDINGS=php LLVM_BACKEND=1
     - compiler: clang
       language: php
       php: "5.4"
-      env: BINDINGS=php CC=clang
+      env: BINDINGS=php CC=clang LLVM_BACKEND=0
+    - compiler: clang
+      language: php
+      php: "5.4"
+      env: BINDINGS=php CC=clang LLVM_BACKEND=1
+    - compiler: gcc
+      language: dotnet
+      env: BINDINGS=dotnet LLVM_BACKEND=0
     - compiler: gcc
       language: dotnet
-      env: BINDINGS=dotnet
+      env: BINDINGS=dotnet LLVM_BACKEND=1
+    - compiler: clang
+      language: dotnet
+      env: BINDINGS=dotnet CC=clang LLVM_BACKEND=0
     - compiler: clang
       language: dotnet
-      env: BINDINGS=dotnet CC=clang
+      env: BINDINGS=dotnet CC=clang LLVM_BACKEND=1
+    - compiler: gcc
+      language: cpp
+      env: BINDINGS=cpp LLVM_BACKEND=0
+    - compiler: gcc
+      language: cpp
+      env: BINDINGS=cpp LLVM_BACKEND=1
     - compiler: gcc
       language: cpp
-      env: BINDINGS=cpp
+      env: BINDINGS=cpp CC=clang LLVM_BACKEND=0
     - compiler: gcc
       language: cpp
-      env: BINDINGS=cpp CC=clang
+      env: BINDINGS=cpp CC=clang LLVM_BACKEND=1
 before_install:
   - sudo apt-get update -qq
   - sudo apt-get install lcov
@@ -101,7 +178,7 @@ install: true
 before_script:
   - if [ "$BINDINGS" == "php" ]; then phpenv config-add src/bindings/php/hammer.ini; fi
 script:
-  - if [ "$BINDINGS" == "none" ]; then scons test --variant=debug --coverage; else scons bindings=$BINDINGS test; fi
+  - if [ "$BINDINGS" == "none" ]; then if [ "$LLVM_BACKEND" == "1" ]; then LLVM_FLAG="--enable-llvm-backend"; else LLVM_FLAG="--disable-llvm-backend"; fi; scons test --variant=debug $LLVM_FLAG --coverage; else scons $LLVM_FLAG bindings=$BINDINGS test; fi
 after_success:
   - if [ "$BINDINGS" == "none" ]; then if [ "$CC" == "clang" ]; then llvm-cov gcov -o coverage.info build/debug/src/test_suite.gcda; else lcov --capture --directory build/debug/src --output-file coverage.info; fi; fi
   - coveralls-lcov coverage.info