llvm-mirror/include/llvm
Eli Bendersky 09ca9737c2 Add backreference matching capabilities to Support/Regex, with
appropriate unit tests. This change in itself is not expected to
affect any functionality at this point, but it will serve as a
stepping stone to improve FileCheck's variable matching capabilities.

Luckily, our regex implementation already supports backreferences,
although a bit of hacking is required to enable it. It supports both
Basic Regular Expressions (BREs) and Extended Regular Expressions
(EREs), without supporting backrefs for EREs, following POSIX strictly
in this respect. And EREs is what we actually use (rightly). This is
contrary to many implementations (including the default on Linux) of
POSIX regexes, that do allow backrefs in EREs.

Adding backref support to our EREs is a very simple change in the
regcomp parsing code. I fail to think of significant cases where it
would clash with existing things, and can bring more versatility to
the regexes we write. There's always the danger of a backref in a
specially crafted regex causing exponential matching times, but since
we mainly use them for testing purposes I don't think it's a big
problem. [it can also be placed behind a flag specific to FileCheck,
if needed].

For more details, see:

* http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-November/055840.html
* http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/156878.html

llvm-svn: 168802
2012-11-28 19:00:02 +00:00
..
ADT typo 2012-11-16 21:33:35 +00:00
Analysis Fast-math optimization: fold multiply by zero 2012-11-27 00:46:26 +00:00
Assembly Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
Bitcode Add back support for reading and parsing 'deplibs'. 2012-11-28 08:41:48 +00:00
CodeGen misched: Analysis that partitions the DAG into subtrees. 2012-11-28 05:13:28 +00:00
Config llvm/Config/config.h.cmake: Good bye, Kevin! We won't honor authors in comments. 2012-10-29 16:07:28 +00:00
DebugInfo Rewrite DIContext interface to take an object. Update all callers. 2012-11-12 21:40:38 +00:00
ExecutionEngine Fix comment formatting in RuntimeDyld.h 2012-11-27 22:53:57 +00:00
MC Add brief support for the fission .debug_info.dwo section for 2012-11-28 02:49:38 +00:00
Object Remove some dead code. 2012-11-20 18:37:40 +00:00
Support Add backreference matching capabilities to Support/Regex, with 2012-11-28 19:00:02 +00:00
TableGen Remove exception handling usage from tblgen. 2012-10-25 20:33:17 +00:00
Target Remove all references to TargetInstrInfoImpl. 2012-11-28 02:35:17 +00:00
Transforms [asan] Split AddressSanitizer into two passes (FunctionPass, ModulePass), LLVM part. This requires a clang part which will follow. 2012-11-28 10:31:36 +00:00
AddressingMode.h Use DataTypes.h 2012-10-08 23:14:28 +00:00
Argument.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Attributes.h Make the AttrListPtr object a part of the LLVMContext. 2012-11-20 05:09:20 +00:00
AutoUpgrade.h remove autoupgrade support for really old-style debug info intrinsics. 2011-11-27 06:18:33 +00:00
BasicBlock.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
CallGraphSCCPass.h Remove assignPassManager's default arguments. It's really 2010-08-07 01:25:32 +00:00
CallingConv.h Add the Erlang/HiPE calling convention, patch by Yiannis Tsiouris. 2012-11-16 12:36:39 +00:00
CMakeLists.txt llvm/include/llvm/CMakeLists.txt: Cut dependency to intrinsics_gen. 2012-07-06 15:55:39 +00:00
Constant.h Make GlobalOpt be conservative with TLS variables (PR14309) 2012-11-15 11:40:00 +00:00
Constants.h Typo 2012-11-17 17:59:44 +00:00
DataLayout.h Do not handle void types in DataLayout. Patch by Patrick Hägglund. 2012-11-15 14:45:30 +00:00
DebugInfo.h 80-column and whitespace fixups. 2012-11-20 00:15:36 +00:00
DefaultPasses.h Fix a couple include directives that used angle brackets for llvm files. 2012-09-15 18:41:37 +00:00
DerivedTypes.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
DIBuilder.h Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." 2012-11-13 23:30:43 +00:00
Function.h Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change. 2012-10-16 05:23:31 +00:00
GlobalAlias.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
GlobalValue.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
GlobalVariable.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
GVMaterializer.h
InitializePasses.h [asan] Split AddressSanitizer into two passes (FunctionPass, ModulePass), LLVM part. This requires a clang part which will follow. 2012-11-28 10:31:36 +00:00
InlineAsm.h [inline asm] Implement mayLoad and mayStore for inline assembly. In general, 2012-10-30 19:11:54 +00:00
InstrTypes.h Revert the series of commits starting with r166578 which introduced the 2012-11-01 08:07:29 +00:00
Instruction.def [unwind removal] Remove all of the code for the dead 'unwind' instruction. There 2012-02-06 21:44:22 +00:00
Instruction.h Fast-math interfaces for Instructions 2012-11-27 00:41:22 +00:00
Instructions.h Add a getAddressSpace method to the GEP instruction to mirror that of 2012-11-01 11:25:55 +00:00
IntrinsicInst.h va_start, va_end, va_copy: InstrinsicInst subclasses and InstVisitor support. 2012-10-29 09:39:03 +00:00
Intrinsics.h Attributes Rewrite 2012-10-15 04:46:55 +00:00
Intrinsics.td Add llvm.ceil, llvm.trunc, llvm.rint, llvm.nearbyint intrinsics. 2012-11-15 06:51:10 +00:00
IntrinsicsARM.td ARM: Use a dedicated intrinsic for vector bitwise select. 2012-09-21 00:18:20 +00:00
IntrinsicsHexagon.td Test commit. 2012-08-17 06:36:26 +00:00
IntrinsicsMips.td Support MIPS DSP Rev2 intrinsics. 2012-08-27 12:29:01 +00:00
IntrinsicsNVVM.td Remove the PTX back-end and all of its artifacts (triple, etc.) 2012-05-24 21:38:21 +00:00
IntrinsicsPowerPC.td Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem 2010-08-05 23:36:21 +00:00
IntrinsicsX86.td Add support of RTM from TSX extension 2012-11-08 07:28:54 +00:00
IntrinsicsXCore.td Update IntrinsicsXCore.td with the normal LLVM notice at the top of the file. 2011-10-13 21:08:11 +00:00
IRBuilder.h Add IRBuilderBase::getIntPtrTy. 2012-10-31 09:50:01 +00:00
LinkAllPasses.h Add a cost model analysis that allows us to estimate the cost of IR-level instructions. 2012-11-02 21:48:17 +00:00
LinkAllVMCore.h Missed a spot removing Alarm. 2010-12-07 18:50:33 +00:00
Linker.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
LLVMContext.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
MDBuilder.h Add an MDBuilder utility for creating !tbaa.struct nodes. 2012-09-21 23:00:37 +00:00
Metadata.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Module.h Remove the dependent libraries feature. 2012-11-27 09:55:56 +00:00
OperandTraits.h Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its 2011-08-22 09:37:03 +00:00
Operator.h Fast-math flags added to FPMathOperator. 2012-11-27 00:40:00 +00:00
Pass.h Test commit only modifying comments 2012-11-27 17:39:20 +00:00
PassAnalysisSupport.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
PassManager.h Revert r168635 "Step towards implementation of pass manager with doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model". 2012-11-27 00:53:24 +00:00
PassManagers.h Revert r168635 "Step towards implementation of pass manager with doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model". 2012-11-27 00:53:24 +00:00
PassRegistry.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
PassSupport.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
SymbolTableListTraits.h Remove unused typedefs gcc4.8 warns about. 2012-09-05 17:55:46 +00:00
TargetTransformInfo.h CostModel: add support for Vector Insert and Extract. 2012-11-02 22:31:56 +00:00
Type.h Teach Type::getPointerAddressSpace to look through pointer vectors 2012-11-01 09:37:49 +00:00
TypeBuilder.h Move llvm/Support/TypeBuilder.h -> llvm/TypeBuilder.h. This completes 2012-07-15 23:45:24 +00:00
TypeFinder.h Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Use.h Add includes of Compiler.h to fix build bot failures. 2012-09-16 21:50:09 +00:00
User.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Value.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
ValueSymbolTable.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00