Skip to content
  1. Aug 29, 2012
    • Andrew Trick's avatar
      Fix a nondeterminism in the ARM assembler. · 818f5ac5
      Andrew Trick authored
      Adding arbitrary records to ARM.td would break
      basic-arm-instructions.s because selection of nop vs mov r0,r0 was
      ambiguous (this will be tested by a subsequent addition to ARM.td).
      An imperfect but sensible fix is to give precedence to match rules
      that have more constraints.
      
      llvm-svn: 162824
      818f5ac5
    • Jush Lu's avatar
      [arm-fast-isel] Add support for ARM PIC. · e87e559e
      Jush Lu authored
      llvm-svn: 162823
      e87e559e
    • Chandler Carruth's avatar
      Relocate the external headers provided by ASan and the common sanitizer · 1aa4fef6
      Chandler Carruth authored
      library.
      
      These headers are intended to be available to user code when built with
      AddressSanitizer (or one of the other sanitizer's in the future) to
      interface with the runtime library. As such, they form stable external
      C interfaces, and the headers shouldn't be located within the
      implementation.
      
      I've pulled them out into what seem like fairly obvious locations and
      names, but I'm wide open to further bikeshedding of these names and
      locations.
      
      I've updated the code and the build system to cope with the new
      locations, both CMake and Makefile. Please let me know if this breaks
      anyone's build.
      
      The eventual goal is to install these headers along side the Clang
      builtin headers when we build the ASan runtime and install it. My
      current thinking is to locate them at:
      
        <prefix>/lib/clang/X.Y/include/sanitizer/common_interface_defs.h
        <prefix>/lib/clang/X.Y/include/sanitizer/asan_interface.h
        <prefix>/lib/clang/X.Y/include/sanitizer/...
      
      But maybe others have different suggestions?
      
      Fixing the style of the #include between these headers at least unblocks
      experimentation with installing them as they now should work when
      installed in these locations.
      
      llvm-svn: 162822
      1aa4fef6
    • Andrew Trick's avatar
      Fix ARM vector copies of overlapping register tuples. · bd0073dd
      Andrew Trick authored
      I have tested the fix, but have not been successfull in generating
      a robust unit test. This can only be exposed through particular
      register assignments.
      
      llvm-svn: 162821
      bd0073dd
    • Andrew Trick's avatar
      cleanup · 4cc6949a
      Andrew Trick authored
      llvm-svn: 162820
      4cc6949a
    • NAKAMURA Takumi's avatar
      e9205613
    • Jordan Rose's avatar
      [analyzer] C++ objects returned on the stack may be wrapped in ExprWithCleanups. · 2c625dd6
      Jordan Rose authored
      In C++, objects being returned on the stack are actually copy-constructed into
      the return value. That means that when a temporary is returned, it still has
      to be destroyed, i.e. the returned expression will be wrapped in an
      ExprWithCleanups node. Our "returning stack memory" checker needs to look
      through this node to see if we really are returning an object by value.
      
      PR13722
      
      llvm-svn: 162817
      2c625dd6
    • Jakob Stoklund Olesen's avatar
      Verify the tied operand flags. · dbbff789
      Jakob Stoklund Olesen authored
      WHen running with -verify-machineinstrs, check that tied operands come
      in matching use/def pairs, and that they are consistent with MCInstrDesc
      when it applies.
      
      llvm-svn: 162816
      dbbff789
    • Chandler Carruth's avatar
      Enable recursing into the compiler-rt projcet with the CMake build. · 0c94f5e2
      Chandler Carruth authored
      This only fires if using a recent enough CMake -- compiler-rt uses a few
      of the more advanced features that not everyone needs.
      
      Please let me know if anyone sees issues with this. I'll be updating
      documentation and other stuff to tell people about this.
      
      Many thanks to Alexey for doing a ton of work to get ASan's CMake build
      into a really fantastic shape. =]
      
      llvm-svn: 162815
      0c94f5e2
    • Jakob Stoklund Olesen's avatar
      Maintain a vaild isTied bit as operands are added and removed. · 2b166645
      Jakob Stoklund Olesen authored
      The isTied bit is set automatically when a tied use is added and
      MCInstrDesc indicates a tied operand. The tie is broken when one of the
      tied operands is removed.
      
      llvm-svn: 162814
      2b166645
    • NAKAMURA Takumi's avatar
      llvm/test: [CMake] Add profile_rt-shared to deps. · e1f9fc11
      NAKAMURA Takumi authored
      llvm-svn: 162813
      e1f9fc11
    • NAKAMURA Takumi's avatar
      libprofile: [CMake] Let libprofile_rt be not loadable_module but shared... · 3bf02f03
      NAKAMURA Takumi authored
      libprofile: [CMake] Let libprofile_rt be not loadable_module but shared library. Autoconf's one does so.
      
      llvm-svn: 162812
      3bf02f03
    • NAKAMURA Takumi's avatar
      llvm/test/Analysis/Profiling: Mark 3 of them as REQUIRES: loadable_module. · 87abb0ee
      NAKAMURA Takumi authored
      FIXME: profile_rt.dll could be built on win32.
      llvm-svn: 162811
      87abb0ee
    • Alexander Kornienko's avatar
      Keep history of macro definitions and #undefs · 8b3f6235
      Alexander Kornienko authored
      Summary:
      Summary: Keep history of macro definitions and #undefs with corresponding source locations, so that we can later find out all macros active in a specified source location. We don't save the history in PCH (no need currently). Memory overhead is about sizeof(void*)*3*<number of macro definitions and #undefs>+<in-memory size of all #undef'd macros>
      
      I've run a test on a file composed of 109 .h files from boost 1.49 on x86-64 linux.
      Stats before this patch:
      *** Preprocessor Stats:
      73222 directives found:
        19171 #define.
        4345 #undef.
        #include/#include_next/#import:
          5233 source files entered.
          27 max include stack depth
        19210 #if/#ifndef/#ifdef.
        2384 #else/#elif.
        6891 #endif.
        408 #pragma.
      14466 #if/#ifndef#ifdef regions skipped
      80023/451669/1270 obj/fn/builtin macros expanded, 85724 on the fast path.
      127145 token paste (##) operations performed, 11008 on the fast path.
      
      Preprocessor Memory: 5874615B total
        BumpPtr: 4399104
        Macro Expanded Tokens: 417768
        Predefines Buffer: 8135
        Macros: 1048576
        #pragma push_macro Info: 0
        Poison Reasons: 1024
        Comment Handlers: 8
      
      Stats with this patch:
      ...
      Preprocessor Memory: 7541687B total
        BumpPtr: 6066176
        Macro Expanded Tokens: 417768
        Predefines Buffer: 8135
        Macros: 1048576
        #pragma push_macro Info: 0
        Poison Reasons: 1024
        Comment Handlers: 8
      
      In my test increase in memory usage is about 1.7Mb, which is ~28% of initial preprocessor's memory usage and about 0.8% of clang's total VMM allocation.
      
      As for CPU overhead, it should only be noticeable when iterating over all macros, and should mostly consist of couple extra dereferences and one comparison per macro + skipping of #undef'd macros. It's less trivial to measure, though, as the preprocessor consumes a very small fraction of compilation time.
      
      
      Reviewers: doug.gregor, klimek, rsmith, djasper
      
      Reviewed By: doug.gregor
      
      CC: cfe-commits, chandlerc
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D28
      
      llvm-svn: 162810
      8b3f6235
    • Chandler Carruth's avatar
      Some flag cleanup for the sanitizer runtimes. · c1c9d581
      Chandler Carruth authored
      This hoists most of the CFLAGS into a common variable. It also adds
      detection for -Wno-c99-extensions and uses it to silence a pile of
      warnings.
      
      Finally, it switches to the proper flag -rdynamic.
      
      With this, the cmake build is warning free on my bootstrap Linux build.
      
      llvm-svn: 162809
      c1c9d581
    • Jack Carter's avatar
      Moved input for objdump test from Mips to Inputs. · fc935166
      Jack Carter authored
      llvm-svn: 162808
      fc935166
    • Chad Rosier's avatar
      Typo. · 3b1336ce
      Chad Rosier authored
      llvm-svn: 162807
      3b1336ce
    • Jason Molenda's avatar
      Instead of using re.split and requiring two spaces between the "regname: regvalue" pairs, · e5ad3859
      Jason Molenda authored
      use re.findall and specify the regexp of regname: regvalue that we're interested in.
      <rdar://problem/12188752> 
      
      llvm-svn: 162806
      e5ad3859
    • Michael Liao's avatar
      Add comments on the literal value used. · 407d659f
      Michael Liao authored
      llvm-svn: 162805
      407d659f
    • Manuel Klimek's avatar
      Modifes BoundNodes to store void* and allow casting them · 021d56f9
      Manuel Klimek authored
      into the correct types when pulling them out in the result
      callback in a type safe way.
      
      This is also the base change for multiple things that will
      allow handling things more generally and thus supporting more
      of the AST, especially handling Type nodes.
      
      Patch contributed by Michael Diamond.
      
      llvm-svn: 162804
      021d56f9
    • Jim Grosbach's avatar
      LLI: move instruction cache tweaks. · 748b9478
      Jim Grosbach authored
      Invalidate the instruction cache right before we start actually executing code, otherwise
      we can miss some that came later. This is still not quite right for a truly lazilly
      compiled environment, but it's closer.
      
      llvm-svn: 162803
      748b9478
    • Johnny Chen's avatar
      rdar://problem/11374963 · 1083b0de
      Johnny Chen authored
      Fix a subtle ArchSpec::cores_match() logic issue which prevents the add-dsym command
      to add a debug symbol file to one of the target's current modules.
      
      llvm-svn: 162802
      1083b0de
    • Fariborz Jahanian's avatar
      objective-C arc: ns_returns_retained is a type attribute in ARC, · 272b7dc8
      Fariborz Jahanian authored
      and when used in property type declaration, is handled as type
      attribute. Do not issue the warning when declaraing the property. 
      // rdar://12173491
      
      llvm-svn: 162801
      272b7dc8
    • Chad Rosier's avatar
      Fix test case for Release builds. · 41b73951
      Chad Rosier authored
      llvm-svn: 162800
      41b73951
    • Manman Ren's avatar
      Profile: set branch weight metadata with data generated from profiling. · abbb01ab
      Manman Ren authored
      This patch implements ProfileDataLoader which loads profile data generated by
      -insert-edge-profiling and updates branch weight metadata accordingly.
      
      Patch by Alastair Murray.
      
      llvm-svn: 162799
      abbb01ab
    • Alexander Kornienko's avatar
      Only add common tool options when CommonOptionsParser is used. · 9ed8c4e9
      Alexander Kornienko authored
      Summary: Subj.
      
      Reviewers: chandlerc, klimek, djasper
      
      Reviewed By: klimek
      
      CC: cfe-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D29
      
      llvm-svn: 162798
      9ed8c4e9
    • Chad Rosier's avatar
      Revert r162424 now that the scoping issue has been fixed in r162444. · 6f0a9a2e
      Chad Rosier authored
      llvm-svn: 162797
      6f0a9a2e
  2. Aug 28, 2012
Loading