Skip to content
  1. Aug 13, 2013
    • Michael Gottesman's avatar
      Update makeLibCall to return both the call and the chain associated with the... · 7a801729
      Michael Gottesman authored
      Update makeLibCall to return both the call and the chain associated with the libcall instead of just the call. This allows us to specify libcalls that return void.
      
      LowerCallTo returns a pair with the return value of the call as the first
      element and the chain associated with the return value as the second element. If
      we lower a call that has a void return value, LowerCallTo returns an SDValue
      with a NULL SDNode and the chain for the call. Thus makeLibCall by just
      returning the first value makes it impossible for you to set up the chain so
      that the call is not eliminated as dead code.
      
      I also updated all references to makeLibCall to reflect the new return type.
      
      llvm-svn: 188300
      7a801729
    • Joey Gouly's avatar
      ARMv8: SWP and SWPB are obsoleted on ARMv8. · 9960e764
      Joey Gouly authored
      llvm-svn: 188288
      9960e764
    • Evgeniy Stepanov's avatar
      Fix compiler warnings. · 7dee697f
      Evgeniy Stepanov authored
      ../lib/Target/X86/X86ISelLowering.cpp:9715:7: error: unused variable 'OpVT' [-Werror,-Wunused-variable]
        EVT OpVT = Op0.getValueType();
            ^
      ../lib/Target/X86/X86ISelLowering.cpp:9763:14: error: unused variable 'NumElems' [-Werror,-Wunused-variable]
          unsigned NumElems = VT.getVectorNumElements();
      
      llvm-svn: 188269
      7dee697f
    • Mihai Popa's avatar
      Fix signed overflow in when computing encodings for ADR instructions · 0e1012f0
      Mihai Popa authored
      llvm-svn: 188268
      0e1012f0
    • Elena Demikhovsky's avatar
      AVX-512: Added CMP and BLEND instructions. · 60b1f289
      Elena Demikhovsky authored
      Lowering for SETCC.
      
      llvm-svn: 188265
      60b1f289
    • Vladimir Medic's avatar
      This patch introduces changes to MipsAsmParser register parsing routines. The... · 27c87ea6
      Vladimir Medic authored
      This patch introduces changes to MipsAsmParser register parsing routines. The code now follows more deterministic path and makes the code more efficient and easier to maintain.
      
      llvm-svn: 188264
      27c87ea6
    • Kevin Enderby's avatar
      Fix a crash with X86 Mach-O and a subtraction expression where both symbols are · b03f3fe4
      Kevin Enderby authored
      undefined and produce an error message instead as this is a non-relocatable
      expression with X86 Mach-O.
      
      rdar://8920876
      
      llvm-svn: 188218
      b03f3fe4
    • Tom Stellard's avatar
      R600: Set scheduling preference to Sched::Source · fc455471
      Tom Stellard authored
      R600 doesn't need to do any scheduling on the SelectionDAG now that it
      has a very good MachineScheduler.  Also, using the VLIW SelectionDAG
      scheduler was having a major impact on compile times. For example with
      the phatk kernel here are the LLVM IR to machine code compile times:
      
      With Sched::VLIW
      
      Total Compile Time:                  1.4890 Seconds (User + System)
      SelectionDAG Instruction Scheduling: 1.1670 Seconds (User + System)
      
      With Sched::Source
      
      Total Compile Time:                  0.3330 Seconds (User + System)
      SelectionDAG Instruction Scheduling: 0.0070 Seconds (User + System)
      
      The code ouput was identical with both schedulers.  This may not be true
      for all programs, but it gives me confidence that there won't be much
      reduction, if any, in code quality by using Sched::Source.
      
      llvm-svn: 188215
      fc455471
  2. Aug 12, 2013
  3. Aug 11, 2013
  4. Aug 10, 2013
  5. Aug 09, 2013
    • Reed Kotler's avatar
      Add another intrinsic that LLVM gives an incorrect prototype to. · be316cff
      Reed Kotler authored
      I need to go through all the runtime routine list and see if there
      are any more I need to add for mips16 floating point. Prototypes must
      be correct or else I don't know to add a helper function call.
      
      llvm-svn: 188106
      be316cff
    • Benjamin Kramer's avatar
      Add a overload to CostTable which allows it to infer the size of the table. · 21585fd9
      Benjamin Kramer authored
      Use it to avoid repeating ourselves too often. Also store MVT::SimpleValueType
      in the TTI tables so they can be statically initialized, MVT's constructors
      create bloated initialization code otherwise.
      
      llvm-svn: 188095
      21585fd9
    • Mihai Popa's avatar
      This fixes the Thumb2 CPS assembly syntax. · 4c2801f7
      Mihai Popa authored
      In Thumb1, only one variant is supported: CPS{effect} {flags}
      
      Thumb2 supports three:
      CPS{effect}.W {flags}
      CPS{effect} {flags} {mode}
      CPS {mode}
      
      Canonically, .W should be used only when ambiguity is present between encodings of different width.
      The wide suffix is still accepted for the latter two forms via aliases.
      
      llvm-svn: 188071
      4c2801f7
    • Mihai Popa's avatar
      Fix assembling of Thumb2 branch instructions. · ad18d3ce
      Mihai Popa authored
      The long encoding for Thumb2 unconditional branches is broken.
      Additionally, there is no range checking for target operands; as such 
      for instructions originating in assembly code, only short Thumb encodings
      are generated, regardless of the bitsize needed for the offset.
      
      Adding range checking is non trivial due to the representation of Thumb
      branch instructions. There is no true difference between conditional and
      unconditional branches in terms of operands and syntax - even unconditional
      branches have a predicate which is expected to match that of the IT block
      they are in. Yet, the encodings and the permitted size of the offset differ.
      
      Due to this, for any mnemonic there are really 4 encodings to choose for.
      
      The problem cannot be handled in the parser alone or by manipulating td files.
      Because the parser builds first a set of match candidates and then checks them
      one by one, whatever tablegen-only solution might be found will ultimately be
      dependent of the parser's evaluation order. What's worse is that due to the fact
      that all branches have the same syntax and the same kinds of operands, that 
      order is governed by the lexicographical ordering of the names of operand 
      classes...
      
      To circumvent all this, any necessary disambiguation is added to the instruction
      validation pass.
      
      llvm-svn: 188067
      ad18d3ce
    • Richard Sandiford's avatar
      [SystemZ] Update README · 9140910b
      Richard Sandiford authored
      llvm-svn: 188062
      9140910b
    • Jack Carter's avatar
      Mips ELF: MicroMips direct object Little endian support. · 7bd3c7d1
      Jack Carter authored
      Test included.
      
      Patch by Zoran Jovanovich
      
      llvm-svn: 188024
      7bd3c7d1
    • Michael J. Spencer's avatar
      [Object] Split the ELF interface into 3 parts. · 126973ba
      Michael J. Spencer authored
      * ELFTypes.h contains template magic for defining types based on endianess, size, and alignment.
      * ELFFile.h defines the ELFFile class which provides low level ELF specific access.
      * ELFObjectFile.h contains ELFObjectFile which uses ELFFile to implement the ObjectFile interface.
      
      llvm-svn: 188022
      126973ba
  6. Aug 08, 2013
Loading