<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/CodeGen/WinCFGuard, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2019-12-25T00:27:51+00:00</updated>
<entry>
<title>Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351</title>
<updated>2019-12-25T00:27:51+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2019-12-25T00:11:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a36ddf0aa9db5c1086e04f56b5f077b761712eb5'/>
<id>urn:sha1:a36ddf0aa9db5c1086e04f56b5f077b761712eb5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[WinCFG] Handle constant casts carefully in .gfids emission</title>
<updated>2019-11-01T20:32:03+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2019-10-30T23:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f5d935c16777c39142043c429ccebb65259dc767'/>
<id>urn:sha1:f5d935c16777c39142043c429ccebb65259dc767</id>
<content type='text'>
Summary:
The general Function::hasAddressTaken has two issues that make it
inappropriate for our purposes:
1. it is sensitive to dead constant users (PR43858 / crbug.com/1019970),
   leading to different codegen when debu info is enabled
2. it considers direct calls via a function cast to be address escapes

The first is fixable, but the second is not, because IPO clients rely on
this behavior. They assume this function means that all call sites are
analyzable for IPO purposes.

So, implement our own analysis, which gets closer to finding functions
that may be indirect call targets.

Reviewers: ajpaverd, efriedma, hans

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69676
</content>
</entry>
<entry>
<title>Add Windows Control Flow Guard checks (/guard:cf).</title>
<updated>2019-10-28T15:19:39+00:00</updated>
<author>
<name>Andrew Paverd</name>
<email>andrew.paverd@microsoft.com</email>
</author>
<published>2019-10-28T13:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d157a9bc8ba1085cc4808c6941412322a7fd884e'/>
<id>urn:sha1:d157a9bc8ba1085cc4808c6941412322a7fd884e</id>
<content type='text'>
Summary:
A new function pass (Transforms/CFGuard/CFGuard.cpp) inserts CFGuard checks on
indirect function calls, using either the check mechanism (X86, ARM, AArch64) or
or the dispatch mechanism (X86-64). The check mechanism requires a new calling
convention for the supported targets. The dispatch mechanism adds the target as
an operand bundle, which is processed by SelectionDAG. Another pass
(CodeGen/CFGuardLongjmp.cpp) identifies and emits valid longjmp targets, as
required by /guard:cf. This feature is enabled using the `cfguard` CC1 option.

Reviewers: thakis, rnk, theraven, pcc

Subscribers: ychen, hans, metalcanine, dmajor, tomrittervg, alex, mehdi_amini, mgorny, javed.absar, kristof.beyls, hiraditya, steven_wu, dexonsmith, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D65761
</content>
</entry>
<entry>
<title>[COFF] Emit @feat.00 on 64-bit and set the CFG bit when emitting guardcf tables</title>
<updated>2018-09-19T09:58:30+00:00</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2018-09-19T09:58:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4195eb1068d54fcdd3e942815bbde27248e81488'/>
<id>urn:sha1:4195eb1068d54fcdd3e942815bbde27248e81488</id>
<content type='text'>
The 0x800 bit in @feat.00 needs to be set in order to make LLD pick up
the .gfid$y table. I believe this is fine to set even if we don't emit
the instrumentation.

We haven't emitted @feat.00 on 64-bit before. I see that MSVC does emit
it, but I'm not entirely sure what the default value should be. I went
with zero since that seems as safe as not emitting the symbol in the
first place.

Differential Revision: https://reviews.llvm.org/D52235

llvm-svn: 342532
</content>
</entry>
<entry>
<title>Rename the cfguard module flag to cfguardtable</title>
<updated>2018-08-10T09:48:53+00:00</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2018-08-10T09:48:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d4090be340fbbc3e490f339cded51954716f53f5'/>
<id>urn:sha1:d4090be340fbbc3e490f339cded51954716f53f5</id>
<content type='text'>
The previous name sounds like it inserts cfguard implementation, but it
really just emits the table of address-taken functions. Change the name
to better reflect that.

Clang will be updated in the next commit.

llvm-svn: 339419
</content>
</entry>
<entry>
<title>Reland "Emit Function IDs table for Control Flow Guard"</title>
<updated>2018-01-09T23:49:30+00:00</updated>
<author>
<name>Adrian McCarthy</name>
<email>amccarth@google.com</email>
</author>
<published>2018-01-09T23:49:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=db2736ddd864925ddecf548b052464699445858f'/>
<id>urn:sha1:db2736ddd864925ddecf548b052464699445858f</id>
<content type='text'>
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs
of functions that have their address taken into a section named .gfids$y for
compatibility with Microsoft's Control Flow Guard feature.

The original patch didn't have the lit.local.cfg file that restricts the new
test to x86, thus the new test was failing on the non-x86 bots.

Differential Revision: https://reviews.llvm.org/D40531

The reverts r322008, which was a revert of r322005.

This reverts commit a05b89f9aca70597dc79fe97bc49b50b51f525ba.

llvm-svn: 322136
</content>
</entry>
<entry>
<title>Revert "Emit Function IDs table for Control Flow Guard"</title>
<updated>2018-01-08T17:12:01+00:00</updated>
<author>
<name>Adrian McCarthy</name>
<email>amccarth@google.com</email>
</author>
<published>2018-01-08T17:12:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ce63a925cc2172b7119a65ce209c0435beba8a9a'/>
<id>urn:sha1:ce63a925cc2172b7119a65ce209c0435beba8a9a</id>
<content type='text'>
The new test fails on the Hexagon bot.  Reverting while I investigate.

This reverts https://reviews.llvm.org/rL322005

This reverts commit b7e0026b4385180c378edc658ec91a39566f2942.

llvm-svn: 322008
</content>
</entry>
<entry>
<title>Emit Function IDs table for Control Flow Guard</title>
<updated>2018-01-08T16:33:42+00:00</updated>
<author>
<name>Adrian McCarthy</name>
<email>amccarth@google.com</email>
</author>
<published>2018-01-08T16:33:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cf6e6c82c1ca243c3be191c59409d26f76ec8d38'/>
<id>urn:sha1:cf6e6c82c1ca243c3be191c59409d26f76ec8d38</id>
<content type='text'>
Adds option /guard:cf to clang-cl and -cfguard to cc1 to emit function IDs
of functions that have their address taken into a section named .gfids$y for
compatibility with Microsoft's Control Flow Guard feature.

Differential Revision: https://reviews.llvm.org/D40531

llvm-svn: 322005
</content>
</entry>
</feed>
