Skip to content
  1. Oct 04, 2014
    • Rafael Auler's avatar
      [ELF] Fix bug in ELFFile::createAtoms() that caused lld to mislink musl · 6fd0afa1
      Rafael Auler authored
      When creating the graph edges of the atoms of an ELF file, special care must be
      taken with atoms that represent weak symbols. They cannot be the target of any
      Reference::kindLayoutAfter edge because they can be merged and point to other
      code, screwing up the final layout of the atoms. ELFFile::createAtoms()
      correctly handles this corner case. The problem is that createAtoms() assumed
      that there can be no zero-sized weak symbols, which is not true. Consider:
      
      my_weak_func1:
      my_weak_func2:
      my_weak_func3:
      code
      
      In this case, we have two zero-sized weak symbols, my_weak_func1 and
      my_weak_func2, and one non-zero weak symbol my_weak_func3. createAtoms() would
      correctly handle my_weak_func3, but not the first two symbols. This problem
      happens in the musl C library when a zero-sized weak symbol is merged and
      screws up the file layout. Since this musl code lives at the finalization hooks,
      any C program linked with LLD and musl was correctly executing, but segfaulting
      at the end.
      
      Reviewers: shankarke
      
      http://reviews.llvm.org/D5606
      
      llvm-svn: 219034
      6fd0afa1
    • Chandler Carruth's avatar
      [x86] Add a really preposterous number of patterns for matching all of · f3e88069
      Chandler Carruth authored
      the various ways in which blends can be used to do vector element
      insertion for lowering with the scalar math instruction forms that
      effectively re-blend with the high elements after performing the
      operation.
      
      This then allows me to bail on the element insertion lowering path when
      we have SSE4.1 and are going to be doing a normal blend, which in turn
      restores the last of the blends lost from the new vector shuffle
      lowering when I got it to prioritize insertion in other cases (for
      example when we don't *have* a blend instruction).
      
      Without the patterns, using blends here would have regressed
      sse-scalar-fp-arith.ll *completely* with the new vector shuffle
      lowering. For completeness, I've added RUN-lines with the new lowering
      here. This is somewhat superfluous as I'm about to flip the default, but
      hey, it shows that this actually significantly changed behavior.
      
      The patterns I've added are just ridiculously repetative. Suggestions on
      making them better very much welcome. In particular, handling the
      commuted form of the v2f64 patterns is somewhat obnoxious.
      
      llvm-svn: 219033
      f3e88069
    • Enrico Granata's avatar
      These two tests were failing on the FreeBSD bot - one has to assume because... · 1a3576a4
      Enrico Granata authored
      These two tests were failing on the FreeBSD bot - one has to assume because FreeBSD comes with libc++. Skip them
      
      llvm-svn: 219032
      1a3576a4
    • Benjamin Kramer's avatar
    • Justin Bogner's avatar
      test: Disable standard system includes in %clang_cc1 · fa9df7af
      Justin Bogner authored
      This adds -nostdsysteminc to the %clang_cc1 expansion, which should
      make it harder to accidentally write tests that depend on headers in
      /usr/include. It also updates a few tests that use -isysroot <x> and a
      darwin triple to omit the triple and use -isystem <x>/usr/include
      instead, making them a little bit more general.
      
      Incidentally, this fixes a test failure I'm seeing on darwin in
      Modules/stddef.c, that happens because my system finds a stddef.h in
      /usr/include.
      
      llvm-svn: 219030
      fa9df7af
    • Jingyue Wu's avatar
      Suppress defined-but-unused warnings · 3c3b4880
      Jingyue Wu authored
      by adding a fake use
      
      llvm-svn: 219029
      3c3b4880
    • Chris Bieneman's avatar
  2. Oct 03, 2014
Loading