I've made a range of improvements to the Emacs mode for LLVM IR.
Most importantly, it changes llvm-mode to inherit from prog-mode. This means llvm-mode will be treated as a normal programming mode in Emacs, so many Emacs features will just work. prog-mode is new to Emacs 24, so I've added an alias to ensure compatibility with Emacs 23 too.
I've changed the mode definition to use define-derived-mode. This saves us needing to set up local variables ourselves, and saves us needing to define llvm-mode-map, llvm-mode-abbrev-table, llvm-mode-map.
I've removed the keybindings to tab-to-tab-stop, center-line and center-paragraph. This shouldn't be llvm-mode's responsibility, and the code didn't actually work anyway (since (not llvm-mode-map) always evaluated to t, the keybindings were never executed).
I've simplified the syntax-table definition, it's equivalent (e.g. " is treated as string delimiter by default in Emacs). I've added . as a symbol constituent, so functions like llvm.memset.p0i8.i32 are recognised as a single symbol. I've also changed % to be a symbol constituent, so users can move between words or symbols at their choice, rather than conflating the two.
I've fixed regexp for types, which incorrect used symbol instead of symbols as an argument to regexp-opt. This was causing incorrect highlighting on lines like call void @foovoid.
I've removed string and comment highlighting from llvm-font-lock-keywords. This is already handled by the syntax-table.
Finally, I've removed the reference to jasmin. That project is long abandoned and the link 404s. For reference, I've found an old copy of the project here: https://github.com/stevej/emacs/blob/master/vendor/jasmin/jasmin.el
I _think_ this is okay.