Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add Windows Control Flow Guard checks (/guard:cf). | Andrew Paverd | 2019-10-28 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Another try to commit 323321 (aggressive instruction combine). | Amjad Aboud | 2018-01-25 | 1 | -0/+1 |
| | | | | llvm-svn: 323416 | ||||
* | Reverted 323321. | Amjad Aboud | 2018-01-24 | 1 | -1/+0 |
| | | | | llvm-svn: 323326 | ||||
* | [InstCombine] Introducing Aggressive Instruction Combine pass ↵ | Amjad Aboud | 2018-01-24 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | (-aggressive-instcombine). Combine expression patterns to form expressions with fewer, simple instructions. This pass does not modify the CFG. For example, this pass reduce width of expressions post-dominated by TruncInst into smaller width when applicable. It differs from instcombine pass in that it contains pattern optimization that requires higher complexity than the O(1), thus, it should run fewer times than instcombine pass. Differential Revision: https://reviews.llvm.org/D38313 llvm-svn: 323321 | ||||
* | [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes | David Majnemer | 2016-07-28 | 1 | -0/+1 |
| | | | | | | | | | | | | | This adds boilerplate code for all coroutine passes, the passes are no-ops for now. Also, a small test has been added to verify that passes execute in the expected order or not at all if coroutine support is disabled. Patch by Gor Nishanov! Differential Revision: https://reviews.llvm.org/D22847 llvm-svn: 277033 | ||||
* | Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation ↵ | Michael Gottesman | 2013-01-28 | 1 | -0/+1 |
| | | | | | | for refactoring the ARC Optimizer. llvm-svn: 173647 | ||||
* | Add a basic-block autovectorization pass. | Hal Finkel | 2012-02-01 | 1 | -0/+1 |
| | | | | | | | This is the initial checkin of the basic-block autovectorization pass along with some supporting vectorization infrastructure. Special thanks to everyone who helped review this code over the last several months (especially Tobias Grosser). llvm-svn: 149468 | ||||
* | Move library stuff out of the toplevel CMakeLists.txt file. | Oscar Fuentes | 2011-02-18 | 1 | -0/+6 |
llvm-svn: 125968 |