1. Sep 30, 2015
    • Rui Ueyama's avatar
      ELF2: Unbreak buildbot. · a7e628ff
      Rui Ueyama authored
      Subshell didn't work on Windows.
      
      llvm-svn: 248840
      a7e628ff
    • David Majnemer's avatar
      [WinEH] Ensure that funclets obey the x64 ABI · 91b0ab91
      David Majnemer authored
      The x64 ABI requires that epilogues do not contain code other than stack
      adjustments and some limited control flow.  However, we'd insert code to
      initialize the return address after stack adjustments.  Instead, insert
      EAX/RAX with the current value before we create the stack adjustments in
      the epilogue.
      
      llvm-svn: 248839
      91b0ab91
    • Rui Ueyama's avatar
      ELF2: Sort Config member variables. NFC. · 4993d0eb
      Rui Ueyama authored
      llvm-svn: 248838
      4993d0eb
    • Rui Ueyama's avatar
      ELF2: Assign bool values directly. NFC. · d7c417c0
      Rui Ueyama authored
      llvm-svn: 248837
      d7c417c0
    • James Y Knight's avatar
      Move functions declared in ExprObjC.h into ExprObjC.cpp. · 4b7a5e74
      James Y Knight authored
      r51703 back in 2008 split out all the ObjC Expr subclasses from Expr.h
      to a new ExprObjC.h file, but failed to also split the implementation
      from Expr.cpp to ExprObjC.cpp. Do so, finally, for readability's sake.
      
      llvm-svn: 248836
      4b7a5e74
    • Evgeniy Stepanov's avatar
      [msan] Disable allocator_mapping test on mips64 and aarch64. · 01e4c87a
      Evgeniy Stepanov authored
      llvm-svn: 248835
      01e4c87a
    • Todd Fiala's avatar
      test runner: switch to pure-Python timeout mechanism · 2d3754d8
      Todd Fiala authored
      The timeout mechanism has been implemented in python,
      so there is no more dependence on external utilities
      for timing out an inferior dotest.py process.
      
      Platform-specific bits are implemented for POSIX-like
      and Windows platforms.  There is a small class named
      ProcessHelper in process_control.py that needs to be
      overridden for platforms that fall outside of the
      POSIX-like and Windows platforms.
      
      See http://reviews.llvm.org/D13124 for more details.
      
      llvm-svn: 248834
      2d3754d8
    • Justin Bogner's avatar
      InstrProf: Support for value profiling in the indexed profile format · 9e9a057a
      Justin Bogner authored
      Add support to the indexed instrprof reader and writer for the format
      that will be used for value profiling.
      
      Patch by Betul Buyukkurt, with minor modifications.
      
      llvm-svn: 248833
      9e9a057a
    • Maksim Panchenko's avatar
      HHVM calling conventions. · cce239c4
      Maksim Panchenko authored
      HHVM calling convention, hhvmcc, is used by HHVM JIT for
      functions in translated cache. We currently support LLVM back end to
      generate code for X86-64 and may support other architectures in the
      future.
      
      In HHVM calling convention any GP register could be used to pass and
      return values, with the exception of R12 which is reserved for
      thread-local area and is callee-saved. Other than R12, we always
      pass RBX and RBP as args, which are our virtual machine's stack pointer
      and frame pointer respectively.
      
      When we enter translation cache via hhvmcc function, we expect
      the stack to be aligned at 16 bytes, i.e. skewed by 8 bytes as opposed
      to standard ABI alignment. This affects stack object alignment and stack
      adjustments for function calls.
      
      One extra calling convention, hhvm_ccc, is used to call C++ helpers from
      HHVM's translation cache. It is almost identical to standard C calling
      convention with an exception of first argument which is passed in RBP
      (before we use RDI, RSI, etc.)
      
      Dif...
      cce239c4
    • Rui Ueyama's avatar
      ELF2: Use 'a.out' as default output file name. · 4eed0114
      Rui Ueyama authored
      llvm-svn: 248831
      4eed0114
    • Alexey Samsonov's avatar
      [CFI] Make CFI tests require UBSan (for diagnostic mode). · 4133c18b
      Alexey Samsonov authored
      CFI itself, on the other hand, doesn't require anything, including
      sanitizer_common.
      
      llvm-svn: 248830
      4133c18b
    • Evgeniy Stepanov's avatar
      [msan] Early allocator initialization. · 7aba3960
      Evgeniy Stepanov authored
      Map MSan heap space early (in __msan_init) so that user code can not
      accidentally (i.e. w/o MAP_FIXED) create a conflicting mapping.
      
      llvm-svn: 248829
      7aba3960
    • Hans Wennborg's avatar
      Fix Clang-tidy modernize-use-nullptr warnings in headers and generated files; other minor cleanups. · 59dbe863
      Hans Wennborg authored
      By Eugene Zelenko!
      
      Differential Revision: http://reviews.llvm.org/D13187
      
      llvm-svn: 248828
      59dbe863
    • Chad Rosier's avatar
      Fix test from r248825. · 1769d850
      Chad Rosier authored
      llvm-svn: 248827
      1769d850
    • Adrian Prantl's avatar
      CGDebugInfo: Don't reuse a reference into a DenseMap if the DenseMap may · 9e8ea359
      Adrian Prantl authored
      be modified in between. (NFC)
      
      llvm-svn: 248826
      9e8ea359
    • Chad Rosier's avatar
      [AArch64] Add support for pre- and post-index LDPSWs. · 43150127
      Chad Rosier authored
      llvm-svn: 248825
      43150127
    • David Majnemer's avatar
      [WinEH] Teach AsmPrinter about funclets · a80c1512
      David Majnemer authored
      Summary:
      Funclets have been turned into functions by the time they hit the object
      file.  Make sure that they have decent names for the symbol table and
      CFI directives explaining how to reason about their prologues.
      
      Differential Revision: http://reviews.llvm.org/D13261
      
      llvm-svn: 248824
      a80c1512
    • Tobias Grosser's avatar
      Replace default destructors by {} destructors · 81f00561
      Tobias Grosser authored
      Hope this fixes the buildbots for now.
      
      llvm-svn: 248823
      81f00561
    • Zachary Turner's avatar
      [llvm-pdbdump] Add include-only filters. · 4dddcc64
      Zachary Turner authored
      PDB files have a lot of noise in them, with hundreds (or thousands)
      of symbols from system libraries and compiler generated types.  If
      you're only looking for a specific type, this can be problematic.
      
      This CL allows you to display *only* types, variables, or compilands
      matching a particular pattern.  These filters can even be combined
      with exclude filters.  Include-only filters are given priority, so
      that first the set of items to display is limited only to those that
      match the include filters, and then the set of exclude filters is
      applied to those.  If there are no include filters specified, then
      it means "display everything".
      
      llvm-svn: 248822
      4dddcc64
    • Cong Hou's avatar
      Rename some function arguments in MachineBasicBlock.cpp/h by turning the first... · 166e0854
      Cong Hou authored
      Rename some function arguments in MachineBasicBlock.cpp/h by turning the first letter into upper case. NFC.
      
      llvm-svn: 248821
      166e0854
    • Rafael Espindola's avatar
      Update test to use invalid elf file in archives. · 2d736486
      Rafael Espindola authored
      The code in driver is about to change so that the invalid files would no
      longer be seen as ELF.
      
      This makes sure that the error path will remain tested.
      
      llvm-svn: 248820
      2d736486
    • Renato Golin's avatar
      Add armhf as unstable runtime temporarily · 9be32f63
      Renato Golin authored
      llvm-svn: 248819
      9be32f63
    • Dehao Chen's avatar
      http://reviews.llvm.org/D13231 · 8e7df83e
      Dehao Chen authored
      Change lookup functions to const functions.
      
      llvm-svn: 248818
      8e7df83e
    • Chad Rosier's avatar
      dabe2534
    • Kostya Serebryany's avatar
      [sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in... · 0c3a5767
      Kostya Serebryany authored
      [sanitizer] Fix Clang-tidy modernize-use-nullptr warnings in lib/sanitizer_common headers, unify closing inclusion guards. Patch by Eugene Zelenko
      
      llvm-svn: 248816
      0c3a5767
    • Nemanja Ivanovic's avatar
      Forgot to remove a FIXME that has been fixed. NFC. · a0deee53
      Nemanja Ivanovic authored
      llvm-svn: 248815
      a0deee53
    • Dehao Chen's avatar
      Revert r248810 which breaks tests. · 028e122c
      Dehao Chen authored
      llvm-svn: 248814
      028e122c
    • Nemanja Ivanovic's avatar
      Addition of interfaces the FE to conform to Table A-2 of ELF V2 ABI V1.1 · 236904ea
      Nemanja Ivanovic authored
      This patch corresponds to review:
      http://reviews.llvm.org/D13190
      
      Implemented the following interfaces to conform to ELF V2 ABI version 1.1.
      
      vector signed __int128 vec_adde (vector signed __int128, vector signed __int128, vector signed __int128);
      vector unsigned __int128 vec_adde (vector unsigned __int128, vector unsigned __int128, vector unsigned __int128);
      vector signed __int128 vec_addec (vector signed __int128, vector signed __int128, vector signed __int128);
      vector unsigned __int128 vec_addec (vector unsigned __int128, vector unsigned __int128, vector unsigned __int128);
      vector signed int vec_addc(vector signed int __a, vector signed int __b);
      vector bool char vec_cmpge (vector signed char __a, vector signed char __b);
      vector bool char vec_cmpge (vector unsigned char __a, vector unsigned char __b);
      vector bool short vec_cmpge (vector signed short __a, vector signed short __b);
      vector bool short vec_cmpge (vector unsigned short __a, vector unsigned short __b);
      vector bool int vec_cmpge (vector signed int __a, vector signed int __b);
      vector bool int vec_cmpge (vector unsigned int __a, vector unsigned int __b);
      vector bool char vec_cmple (vector signed char __a, vector signed char __b);
      vector bool char vec_cmple (vector unsigned char __a, vector unsigned char __b);
      vector bool short vec_cmple (vector signed short __a, vector signed short __b);
      vector bool short vec_cmple (vector unsigned short __a, vector unsigned short __b);
      vector bool int vec_cmple (vector signed int __a, vector signed int __b);
      vector bool int vec_cmple (vector unsigned int __a, vector unsigned int __b);
      vector double vec_double (vector signed long long __a);
      vector double vec_double (vector unsigned long long __a);
      vector bool char vec_eqv(vector bool char __a, vector bool char __b);
      vector bool short vec_eqv(vector bool short __a, vector bool short __b);
      vector bool int vec_eqv(vector bool int __a, vector bool int __b);
      vector bool long long vec_eqv(vector bool long long __a, vector bool long long __b);
      vector signed short vec_madd(vector signed short __a, vector signed short __b, vector signed short __c);
      vector signed short vec_madd(vector signed short __a, vector unsigned short __b, vector unsigned short __c);
      vector signed short vec_madd(vector unsigned short __a, vector signed short __b, vector signed short __c);
      vector unsigned short vec_madd(vector unsigned short __a, vector unsigned short __b, vector unsigned short __c);
      vector bool long long vec_mergeh(vector bool long long __a, vector bool long long __b);
      vector bool long long vec_mergel(vector bool long long __a, vector bool long long __b);
      vector bool char vec_nand(vector bool char __a, vector bool char __b);
      vector bool short vec_nand(vector bool short __a, vector bool short __b);
      vector bool int vec_nand(vector bool int __a, vector bool int __b);
      vector bool long long vec_nand(vector bool long long __a, vector bool long long __b);
      vector bool char vec_orc(vector bool char __a, vector bool char __b);
      vector bool short vec_orc(vector bool short __a, vector bool short __b);
      vector bool int vec_orc(vector bool int __a, vector bool int __b);
      vector bool long long vec_orc(vector bool long long __a, vector bool long long __b);
      vector signed long long vec_sub(vector signed long long __a, vector signed long long __b);
      vector signed long long vec_sub(vector bool long long __a, vector signed long long __b);
      vector signed long long vec_sub(vector signed long long __a, vector bool long long __b);
      vector unsigned long long vec_sub(vector unsigned long long __a, vector unsigned long long __b);
      vector unsigned long long vec_sub(vector bool long long __a, vector unsigned long long __b);
      vector unsigned long long vec_sub(vector unsigned long long __V2 ABI V1.1
      
      
      http://ror float vec_sub(vector float __a, vector float __b);
      unsigned char vec_extract(vector bool char __a, int __b);
      signed short vec_extract(vector signed short __a, int __b);
      unsigned short vec_extract(vector bool short __a, int __b);
      signed int vec_extract(vector signed int __a, int __b);
      unsigned int vec_extract(vector bool int __a, int __b);
      signed long long vec_extract(vector signed long long __a, int __b);
      unsigned long long vec_extract(vector unsigned long long __a, int __b);
      unsigned long long vec_extract(vector bool long long __a, int __b);
      double vec_extract(vector double __a, int __b);
      vector bool char vec_insert(unsigned char __a, vector bool char __b, int __c);
      vector signed short vec_insert(signed short __a, vector signed short __b, int __c);
      vector bool short vec_insert(unsigned short __a, vector bool short __b, int __c);
      vector signed int vec_insert(signed int __a, vector signed int __b, int __c);
      vector bool int vec_insert(unsigned int __a, vector bool int __b, int __c);
      vector signed long long vec_insert(signed long long __a, vector signed long long __b, int __c);
      vector unsigned long long vec_insert(unsigned long long __a, vector unsigned long long __b, int __c);
      vector bool long long vec_insert(unsigned long long __a, vector bool long long __b, int __c);
      vector double vec_insert(double __a, vector double __b, int __c);
      vector signed long long vec_splats(signed long long __a);
      vector unsigned long long vec_splats(unsigned long long __a);
      vector signed __int128 vec_splats(signed __int128 __a);
      vector unsigned __int128 vec_splats(unsigned __int128 __a);
      vector double vec_splats(double __a);
      int vec_all_eq(vector double __a, vector double __b);
      int vec_all_ge(vector double __a, vector double __b);
      int vec_all_gt(vector double __a, vector double __b);
      int vec_all_le(vector double __a, vector double __b);
      int vec_all_lt(vector double __a, vector double __b);
      int vec_all_nan(vector double __a);
      int vec_all_ne(vector double __a, vector double __b);
      int vec_all_nge(vector double __a, vector double __b);
      int vec_all_ngt(vector double __a, vector double __b);
      int vec_any_eq(vector double __a, vector double __b);
      int vec_any_ge(vector double __a, vector double __b);
      int vec_any_gt(vector double __a, vector double __b);
      int vec_any_le(vector double __a, vector double __b);
      int vec_any_lt(vector double __a, vector double __b);
      int vec_any_ne(vector double __a, vector double __b);
      vector unsigned char vec_sbox_be (vector unsigned char);
      vector unsigned char vec_cipher_be (vector unsigned char, vector unsigned char);
      vector unsigned char vec_cipherlast_be (vector unsigned char, vector unsigned char);
      vector unsigned char vec_ncipher_be (vector unsigned char, vector unsigned char);
      vector unsigned char vec_ncipherlast_be (vector unsigned char, vector unsigned char);
      vector unsigned int vec_shasigma_be (vector unsigned int, const int, const int);
      vector unsigned long long vec_shasigma_be (vector unsigned long long, const int, const int);
      vector unsigned short vec_pmsum_be (vector unsigned char, vector unsigned char);
      vector unsigned int vec_pmsum_be (vector unsigned short, vector unsigned short);
      vector unsigned long long vec_pmsum_be (vector unsigned int, vector unsigned int);
      vector unsigned __int128 vec_pmsum_be (vector unsigned long long, vector unsigned long long);
      vector unsigned char vec_gb (vector unsigned char);
      vector unsigned long long vec_bperm (vector unsigned __int128 __a, vector unsigned char __b);
      
      Removed the folowing interfaces either because their signatures have changed
      in version 1.1 of the ABI or because they were implemented for ELF V2 ABI but
      have actually been deprecated in version 1.1.
      
      vector signed char vec_eqv(vector bool char __a, vector signed char __b);
      vector signed char vec_eqv(vector signed char __a, vector bool char __b);
      vector unsigned char vec_eqv(vector bool char __a, vector unsigned char __b);
      vector unsigned char vec_eqv(vector unsigned char __a, vector bool char __b);
      vector signed short vec_eqv(vector bool short __a, vector signed short __b);
      vector signed short vec_eqv(vector signed short __a, vector bool short __b);
      vector unsigned short vec_eqv(vector bool short __a, vector unsigned short __b);
      vector unsigned short vec_eqv(vector unsigned short __a, vector bool short __b);
      vector signed int vec_eqv(vector bool int __a, vector signed int __b);
      vector signed int vec_eqv(vector signed int __a, vector bool int __b);
      vector unsigned int vec_eqv(vector bool int __a, vector unsigned int __b);
      vector unsigned int vec_eqv(vector unsigned int __a, vector bool int __b);
      vector signed long long vec_eqv(vector bool long long __a, vector signed long long __b);
      vector signed long long vec_eqv(vector signed long long __a, vector bool long long __b);
      vector unsigned long long vec_eqv(vector bool long long __a, vector unsigned long long __b);
      vector unsigned long long vec_eqv(vector unsigned long long __a, vector bool long long __b);
      vector float vec_eqv(vector bool int __a, vector float __b);
      vector float vec_eqv(vector float __a, vector bool int __b);
      vector double vec_eqv(vector bool long long __a, vector double __b);
      vector double vec_eqv(vector double __a, vector bool long long __b);
      vector unsigned short vec_nand(vector bool short __a, vector unsigned short __b);
      
      llvm-svn: 248813
      236904ea
    • Tobias Grosser's avatar
      Add default region generator · 7dce3a60
      Tobias Grosser authored
      This hopefully helps to to address the following compile error on our buildbots
      
      BlockGenerators.h:683:7: error: looser throw specifier for ‘virtual
      polly::RegionGenerator::~RegionGenerator()’
      BlockGenerators.h:164:11: error:   overriding ‘virtual polly::BlockGenerator::~BlockGenerator() noexcept
      (true)`
      
      llvm-svn: 248812
      7dce3a60
    • Hans Wennborg's avatar
      Fix Clang-tidy modernize-use-nullptr warnings in examples and include... · cc9deb48
      Hans Wennborg authored
      Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups.
      
      Patch by Eugene Zelenko!
      
      Differential Revision: http://reviews.llvm.org/D13172
      
      llvm-svn: 248811
      cc9deb48
    • Dehao Chen's avatar
      http://reviews.llvm.org/D13231 · 410a25aa
      Dehao Chen authored
      Change lookup functions to const functions.
      
      llvm-svn: 248810
      410a25aa
    • Nemanja Ivanovic's avatar
      Addition of interfaces the BE to conform to Table A-2 of ELF V2 ABI V1.1 · 2c84b294
      Nemanja Ivanovic authored
      This patch corresponds to review:
      http://reviews.llvm.org/D13191
      
      Back end portion of the fifth round of additions to altivec.h.
      
      llvm-svn: 248809
      2c84b294
    • Aaron Ballman's avatar
      Added MSVC natvis visualizers for Type and QualType. These could probably be... · 9d21454c
      Aaron Ballman authored
      Added MSVC natvis visualizers for Type and QualType. These could probably be improved, but anything is better than staring at hex values in the debugger.
      
      llvm-svn: 248808
      9d21454c
    • Yaron Keren's avatar
      Fix typo. · 716f3a68
      Yaron Keren authored
      llvm-svn: 248807
      716f3a68
    • Rui Ueyama's avatar
      [ELF2] Implemented --entry flag. · 9d4c6d77
      Rui Ueyama authored
      Patch from George Rimar!
      
      llvm-svn: 248806
      9d4c6d77
    • DeLesley Hutchins's avatar
      Thread Safety Analysis: allow capability attribute on unions. · 2b504dce
      DeLesley Hutchins authored
      llvm-svn: 248805
      2b504dce
    • Chad Rosier's avatar
      [AArch64] Scale offsets by the size of the memory operation. NFC. · 32d4d37e
      Chad Rosier authored
      The immediate in the load/store should be scaled by the size of the memory
      operation, not the size of the register being loaded/stored.  This change gets
      us one step closer to forming LDPSW instructions.  This change also enables
      pre- and post-indexing for halfword and byte loads and stores.
      
      llvm-svn: 248804
      32d4d37e
  2. Sep 29, 2015