<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/utils, branch testing</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/utils?h=testing</id>
<link rel='self' href='https://git.amat.us/llvm/atom/utils?h=testing'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-03-21T23:40:38Z</updated>
<entry>
<title>Add TableGen ctags(1) emitter and helper script.</title>
<updated>2013-03-21T23:40:38Z</updated>
<author>
<name>Sean Silva</name>
<email>silvas@purdue.edu</email>
</author>
<published>2013-03-21T23:40:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=426db657da8753921f21c676b91c527e1b77878c'/>
<id>urn:sha1:426db657da8753921f21c676b91c527e1b77878c</id>
<content type='text'>
To use this in conjunction with exuberant ctags to generate a single
combined tags file, run tblgen first and then
  $ ctags --append [...]

Since some identifiers have corresponding definitions in C++ code,
it can be useful (if using vim) to also use cscope, and
  :set cscopetagorder=1
so that
  :tag X
will preferentially select the tablegen symbol, while
  :cscope find g X
will always find the C++ symbol.

Patch by Kevin Schoedel!

(a couple small formatting changes courtesy of clang-format)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177682 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[lit] Avoid CRLFs in bash scripts on Windows</title>
<updated>2013-03-20T23:32:14Z</updated>
<author>
<name>Reid Kleckner</name>
<email>reid@kleckner.net</email>
</author>
<published>2013-03-20T23:32:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=8755ae8c69ca522a9931aab4b4951443b2f64d26'/>
<id>urn:sha1:8755ae8c69ca522a9931aab4b4951443b2f64d26</id>
<content type='text'>
Native Windows Python will do line ending translation by default, which
we don't want in bash scripts.  If we're not native Windows Python, then
'b' is ignored.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177602 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Extend TableGen instruction selection matcher to improve handling</title>
<updated>2013-03-19T19:51:09Z</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2013-03-19T19:51:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ec8d1a5b72b1cb2d230ba52b25a017231393b182'/>
<id>urn:sha1:ec8d1a5b72b1cb2d230ba52b25a017231393b182</id>
<content type='text'>
of complex instruction operands (e.g. address modes).

Currently, if a Pat pattern creates an instruction that has a complex
operand (i.e. one that consists of multiple sub-operands at the MI
level), this operand must match a ComplexPattern DAG pattern with the
correct number of output operands.

This commit extends TableGen to alternatively allow match a complex
operands against multiple separate operands at the DAG level.

This allows using Pat patterns to match pre-increment nodes like
pre_store (which must have separate operands at the DAG level) onto
an instruction pattern that uses a multi-operand memory operand,
like the following example on PowerPC (will be committed as a
follow-on patch):

  def STWU  : DForm_1&lt;37, (outs ptr_rc:$ea_res), (ins GPRC:$rS, memri:$dst),
                    "stwu $rS, $dst", LdStStoreUpd, []&gt;,
                    RegConstraint&lt;"$dst.reg = $ea_res"&gt;, NoEncode&lt;"$ea_res"&gt;;

  def : Pat&lt;(pre_store GPRC:$rS, ptr_rc:$ptrreg, iaddroff:$ptroff),
            (STWU GPRC:$rS, iaddroff:$ptroff, ptr_rc:$ptrreg)&gt;;

Here, the pair of "ptroff" and "ptrreg" operands is matched onto the
complex operand "dst" of class "memri" in the "STWU" instruction.

Approved by Jakob Stoklund Olesen.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177428 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>TableGen fix for the new machine model.</title>
<updated>2013-03-18T20:42:25Z</updated>
<author>
<name>Andrew Trick</name>
<email>atrick@apple.com</email>
</author>
<published>2013-03-18T20:42:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=02fec34de127d23987352b90bf095ad3fac75fb9'/>
<id>urn:sha1:02fec34de127d23987352b90bf095ad3fac75fb9</id>
<content type='text'>
Properly handle cases where a group of instructions have different
SchedRW lists with the same itinerary class.
This was supposed to work, but I left in an early break.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177317 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Extract a method.</title>
<updated>2013-03-18T04:08:07Z</updated>
<author>
<name>Jakob Stoklund Olesen</name>
<email>stoklund@2pi.dk</email>
</author>
<published>2013-03-18T04:08:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4c16916883c5012e14a84b186cbfee33bfb14027'/>
<id>urn:sha1:4c16916883c5012e14a84b186cbfee33bfb14027</id>
<content type='text'>
This computes the type of an instruction operand or result based on the
records in the instruction's ins and outs lists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177244 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use ArrayRef&lt;MVT::SimpleValueType&gt; when possible.</title>
<updated>2013-03-17T17:26:09Z</updated>
<author>
<name>Jakob Stoklund Olesen</name>
<email>stoklund@2pi.dk</email>
</author>
<published>2013-03-17T17:26:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=26369a930c523b75fe8f4ba18456ff86f68d5612'/>
<id>urn:sha1:26369a930c523b75fe8f4ba18456ff86f68d5612</id>
<content type='text'>
Not passing vector references around makes it possible to use
SmallVector in most places.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177235 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Machine model. Allow mixed itinerary classes and SchedRW lists.</title>
<updated>2013-03-16T18:58:55Z</updated>
<author>
<name>Andrew Trick</name>
<email>atrick@apple.com</email>
</author>
<published>2013-03-16T18:58:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1ab961f6d3cdd284f5d6c696f3e26eb3627e2c8b'/>
<id>urn:sha1:1ab961f6d3cdd284f5d6c696f3e26eb3627e2c8b</id>
<content type='text'>
We always supported a mixture of the old itinerary model and new
per-operand model, but it required a level of indirection to map
itinerary classes to SchedRW lists. This was done for ARM A9.

Now we want to define x86 SchedRW lists, with the goal of removing its
itinerary classes, but still support the itineraries in the mean
time. When I original developed the model, Atom did not have
itineraries, so there was no reason to expect this requirement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177226 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add SchedRW as an Instruction field.</title>
<updated>2013-03-15T22:51:13Z</updated>
<author>
<name>Jakob Stoklund Olesen</name>
<email>stoklund@2pi.dk</email>
</author>
<published>2013-03-15T22:51:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=64110ffc9eecbe999c29ac9d9f6697447a110036'/>
<id>urn:sha1:64110ffc9eecbe999c29ac9d9f6697447a110036</id>
<content type='text'>
Don't require instructions to inherit Sched&lt;...&gt;. Sometimes it is more
convenient to say:

  let SchedRW = ... in {
    ...
  }

Which is now possible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177199 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix r177112: Add ProcResGroup.</title>
<updated>2013-03-14T22:47:01Z</updated>
<author>
<name>Andrew Trick</name>
<email>atrick@apple.com</email>
</author>
<published>2013-03-14T22:47:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=157c6c4e8e0b4f5f83289d32f7b67b1ae2e3c357'/>
<id>urn:sha1:157c6c4e8e0b4f5f83289d32f7b67b1ae2e3c357</id>
<content type='text'>
This is the other half of r177122 that I meant to commit at the same time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177123 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>MachineModel: Add a ProcResGroup class.</title>
<updated>2013-03-14T21:21:50Z</updated>
<author>
<name>Andrew Trick</name>
<email>atrick@apple.com</email>
</author>
<published>2013-03-14T21:21:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1754aca83af1658c832706889c0e2933f8dfa8ee'/>
<id>urn:sha1:1754aca83af1658c832706889c0e2933f8dfa8ee</id>
<content type='text'>
This allows abitrary groups of processor resources. Using something in
a subset automatically counts againts the superset. Currently, this
only works if the superset is also a ProcResGroup as opposed to a
SuperUnit.

This allows SandyBridge to be expressed naturally, which will be
checked in shortly.

def SBPort01 : ProcResGroup&lt;[SBPort0, SBPort1]&gt;;
def SBPort15 : ProcResGroup&lt;[SBPort1, SBPort5]&gt;;
def SBPort23  : ProcResGroup&lt;[SBPort2, SBPort3]&gt;;
def SBPort015 : ProcResGroup&lt;[SBPort0, SBPort1, SBPort5]&gt;;

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177112 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
