Skip to content
  1. Nov 14, 2013
  2. Nov 13, 2013
    • Yuchen Wu's avatar
      Added basic unit test for llvm-cov. · aae88013
      Yuchen Wu authored
      This test compares the output of llvm-cov against a coverage file
      generated by gcov. Currently, llvm-cov does not work on certain
      platforms (namely big-endian architectures such as PowerPC, among
      others). These platforms are marked as XFAIL for now, but will be fixed
      later.
      
      llvm-svn: 194616
      aae88013
    • Chad Rosier's avatar
      [AArch64] Add support for legacy AArch32 NEON scalar shift by immediate · d3ae5f89
      Chad Rosier authored
      instructions.  This patch does not include the shift right and accumulate
      instructions.  A number of non-overloaded intrinsics have been remove in favor
      of their overloaded counterparts.
      
      llvm-svn: 194598
      d3ae5f89
    • Weiming Zhao's avatar
      Enable generating legacy IT block for AArch32 · 0da5cc07
      Weiming Zhao authored
      By default, the behavior of IT block generation will be determinated
      dynamically base on the arch (armv8 vs armv7). This patch adds backend
      options: -arm-restrict-it and -arm-no-restrict-it.  The former one
      restricts the generation of IT blocks (the same behavior as thumbv8) for
      both arches. The later one allows the generation of legacy IT block (the
      same behavior as ARMv7 Thumb2) for both arches.
      
      Clang will support -mrestrict-it and -mno-restrict-it, which is
      compatible with GCC.
      
      llvm-svn: 194592
      0da5cc07
    • Richard Sandiford's avatar
      [SystemZ] Add the general form of BCR · 09de091c
      Richard Sandiford authored
      At the moment this is just the MC support.
      
      llvm-svn: 194585
      09de091c
    • Alexey Samsonov's avatar
      FileCheck: fix matching of one check-prefix is a prefix of another · a7181a1b
      Alexey Samsonov authored
      Summary:
      Fix a case when "FileCheck --check-prefix=CHECK --check-prefix=CHECKER"
      would silently ignore check-lines of the form:
        CHECKER: foo
      
      Reviewers: dsanders
      
      Reviewed By: dsanders
      
      CC: llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2168
      
      llvm-svn: 194577
      a7181a1b
    • Rafael Espindola's avatar
      Remove AllowQuotesInName and friends from MCAsmInfo. · fdc88137
      Rafael Espindola authored
      Accepting quotes is a property of an assembler, not of an object file. For
      example, ELF can support any names for sections and symbols, but the gnu
      assembler only accepts quotes in some contexts and llvm-mc in a few more.
      
      LLVM should not produce different symbols based on a guess about which assembler
      will be reading the code it is printing.
      
      llvm-svn: 194575
      fdc88137
    • Vladimir Medic's avatar
      Fix bug in .gpword directive parsing. · e10c1125
      Vladimir Medic authored
      llvm-svn: 194570
      e10c1125
    • Zoran Jovanovic's avatar
      Support for microMIPS trap instruction with immediate operands. · ccb70caa
      Zoran Jovanovic authored
      llvm-svn: 194569
      ccb70caa
    • Diego Novillo's avatar
      SampleProfileLoader pass. Initial setup. · 8d6568b5
      Diego Novillo authored
      This adds a new scalar pass that reads a file with samples generated
      by 'perf' during runtime. The samples read from the profile are
      incorporated and emmited as IR metadata reflecting that profile.
      
      The profile file is assumed to have been generated by an external
      profile source. The profile information is converted into IR metadata,
      which is later used by the analysis routines to estimate block
      frequencies, edge weights and other related data.
      
      External profile information files have no fixed format, each profiler
      is free to define its own. This includes both the on-disk representation
      of the profile and the kind of profile information stored in the file.
      A common kind of profile is based on sampling (e.g., perf), which
      essentially counts how many times each line of the program has been
      executed during the run.
      
      The SampleProfileLoader pass is organized as a scalar transformation.
      On startup, it reads the file given in -sample-profile-file to
      determine what kind of profile it contains.  This file is assumed to
      contain profile information for the whole application. The profile
      data in the file is read and incorporated into the internal state of
      the corresponding profiler.
      
      To facilitate testing, I've organized the profilers to support two file
      formats: text and native. The native format is whatever on-disk
      representation the profiler wants to support, I think this will mostly
      be bitcode files, but it could be anything the profiler wants to
      support. To do this, every profiler must implement the
      SampleProfile::loadNative() function.
      
      The text format is mostly meant for debugging. Records are separated by
      newlines, but each profiler is free to interpret records as it sees fit.
      Profilers must implement the SampleProfile::loadText() function.
      
      Finally, the pass will call SampleProfile::emitAnnotations() for each
      function in the current translation unit. This function needs to
      translate the loaded profile into IR metadata, which the analyzer will
      later be able to use.
      
      This patch implements the first steps towards the above design. I've
      implemented a sample-based flat profiler. The format of the profile is
      fairly simplistic. Each sampled function contains a list of relative
      line locations (from the start of the function) together with a count
      representing how many samples were collected at that line during
      execution. I generate this profile using perf and a separate converter
      tool.
      
      Currently, I have only implemented a text format for these profiles. I
      am interested in initial feedback to the whole approach before I send
      the other parts of the implementation for review.
      
      This patch implements:
      
      - The SampleProfileLoader pass.
      - The base ExternalProfile class with the core interface.
      - A SampleProfile sub-class using the above interface. The profiler
        generates branch weight metadata on every branch instructions that
        matches the profiles.
      - A text loader class to assist the implementation of
        SampleProfile::loadText().
      - Basic unit tests for the pass.
      
      Additionally, the patch uses profile information to compute branch
      weights based on instruction samples.
      
      This patch converts instruction samples into branch weights. It
      does a fairly simplistic conversion:
      
      Given a multi-way branch instruction, it calculates the weight of
      each branch based on the maximum sample count gathered from each
      target basic block.
      
      Note that this assignment of branch weights is somewhat lossy and can be
      misleading. If a basic block has more than one incoming branch, all the
      incoming branches will get the same weight. In reality, it may be that
      only one of them is the most heavily taken branch.
      
      I will adjust this assignment in subsequent patches.
      
      llvm-svn: 194566
      8d6568b5
    • Alexey Samsonov's avatar
      FileCheck: fix a bug with multiple --check-prefix options. · 21a340fa
      Alexey Samsonov authored
      Summary:
      This fixes a subtle bug in new FileCheck feature added
      in r194343. When we search for the first satisfying check-prefix,
      we should actually return the first encounter of some check-prefix as a
      substring, even if it's not a part of valid check-line. Otherwise
      "FileCheck --check-prefix=FOO --check-prefix=BAR" with check file:
      
        FOO not a vaild check-line
        FOO: foo
        BAR: bar
      
      incorrectly accepted file:
      
        fog
        bar
      
      as it skipped the first two encounters of FOO, matching only BAR: line.
      
      Reviewers: arsenm, dsanders
      
      Reviewed By: dsanders
      
      CC: llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2166
      
      llvm-svn: 194565
      21a340fa
    • Robert Lytton's avatar
      XCore target: implement exception handling · a83c0482
      Robert Lytton authored
      llvm-svn: 194564
      a83c0482
    • Vladimir Medic's avatar
      This patch fixes a bug in floating point operands parsing, when instruction... · 77ffd7af
      Vladimir Medic authored
      This patch fixes a bug in floating point operands parsing, when instruction alias uses default register operand.
      
      llvm-svn: 194562
      77ffd7af
    • NAKAMURA Takumi's avatar
      Add XFAIL:arm again on 4 MCJIT tests, since r194558. AArch64 has been left removed. · db5d18d2
      NAKAMURA Takumi authored
      They are failing on clang-native-arm-cortex-a9.
      
      Please tweak MCJIT/lit.local.cfg, if this didn't satisfy bots.
      
      llvm-svn: 194561
      db5d18d2
    • NAKAMURA Takumi's avatar
      Remove XFAIL:aarch64,arm from 4 tests in test/ExecutionEngine/MCJIT. · b71b7baa
      NAKAMURA Takumi authored
      They are reported as XPASSing.
      
      llvm-svn: 194558
      b71b7baa
    • Reed Kotler's avatar
      Allow the code which returns the length for inline assembler to know · 5c8ae095
      Reed Kotler authored
      specifically about the .space directive. This allows us to force large
      blocks of code to appear in test cases for things like constant islands
      without having to make giant test cases to force things like long 
      branches to take effect.
      
      llvm-svn: 194555
      5c8ae095
    • Andrew Trick's avatar
      Add a test case to verify that misusing anyregcc crashes as expected. · 5469ae8f
      Andrew Trick authored
      llvm-svn: 194553
      5469ae8f
    • Matt Arsenault's avatar
      R600: Fix selection failure on EXTLOAD · 00a0d6f6
      Matt Arsenault authored
      llvm-svn: 194547
      00a0d6f6
    • Juergen Ributzka's avatar
      SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too. · 34c652d3
      Juergen Ributzka authored
      This patch reapplies r193676 with an additional fix for the Hexagon backend. The
      SystemZ backend has already been fixed by r194148.
      
      The Type Legalizer recognizes that VSELECT needs to be split, because the type
      is to wide for the given target. The same does not always apply to SETCC,
      because less space is required to encode the result of a comparison. As a result
      VSELECT is split and SETCC is unrolled into scalar comparisons.
      
      This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG
      Combiner. If a matching pattern is found, then the result mask of SETCC is
      promoted to the expected vector mask type for the given target. Now the type
      legalizer will split both VSELECT and SETCC.
      
      This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX
      pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>.
      
      Reviewed by Nadav
      
      llvm-svn: 194542
      34c652d3
  3. Nov 12, 2013
Loading