   ///
   /// - returns: A value representing the newly inserted global string variable.
   public func addGlobalString(name: String, value: String) -> Global {
-    let length = value.utf8.count
-
-    var global = addGlobal(name, type:
-      ArrayType(elementType: IntType.int8, count: length + 1))
-
-    global.alignment = 1
-    global.initializer = value
-
-    return global
+    return self.module.addGlobalString(name: name, value: value)
   }
 
   /// Build a named global variable containing the characters of the given

  ///
  /// - returns: A value representing the newly created alias.
  public func addAlias(name: String, to aliasee: IRGlobal, type: IRType) -> Alias {
    return Alias(llvm: LLVMAddAlias(module.llvm, type.asLLVM(), aliasee.asLLVM(), name))
  }

  // MARK: Inline Assembly

  ///
  /// - returns: A value representing the newly inserted global variable.
  public func addGlobal(_ name: String, type: IRType, addressSpace: Int? = nil) -> Global {
    return self.module.addGlobal(name, type: type, addressSpace: addressSpace)
  }

  /// Build a named global of the given type.
