aboutsummaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Remove unneeded sentence.Bill Wendling2011-08-171-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137854 91177308-0d34-0410-b5e6-96231b3b80d8
* ...and make sure DynamicLibrary builds by removing "const" from the Invalid ↵Jordy Rose2011-08-171-1/+1
| | | | | | placeholder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137843 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't use NULL to represent an invalid library; Cygwin uses this for ↵Jordy Rose2011-08-171-2/+7
| | | | | | RTLD_DEFAULT. Caught by Takumi. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137841 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow the MCDisassembler to return a "soft fail" status code, indicating an ↵Owen Anderson2011-08-171-2/+33
| | | | | | | | | instruction that is disassemblable, but invalid. Only used for ARM UNPREDICTABLE instructions at the moment. Patch by James Molloy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137830 91177308-0d34-0410-b5e6-96231b3b80d8
* Use DynamicLibrary instances as a way to get symbols from a specific ↵Jordy Rose2011-08-171-30/+40
| | | | | | library. Preparation for upcoming (preliminary) support for plugins for the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137791 91177308-0d34-0410-b5e6-96231b3b80d8
* Until now all debug info MDNodes referred to a root MDNode, a compile unit. ↵Devang Patel2011-08-162-1/+24
| | | | | | | | | | This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL. MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137778 91177308-0d34-0410-b5e6-96231b3b80d8
* Increment debug info version to accommodate upcoming change in debug info ↵Devang Patel2011-08-161-1/+2
| | | | | | node structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137751 91177308-0d34-0410-b5e6-96231b3b80d8
* Add getFirstInsertionPt() method.Bill Wendling2011-08-161-0/+9
| | | | | | | | | getFirstInsertionPt() returns an iterator to the first insertion point in a basic block. This is after all PHIs and any other instruction which is required to be at the top of the basic block (like LandingPadInst). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137744 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused Target argument from AsmParser construction methods.Jim Grosbach2011-08-161-2/+1
| | | | | | | The argument is unused, and is a layering violation in any case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137735 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused forward declaration.Jim Grosbach2011-08-161-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137734 91177308-0d34-0410-b5e6-96231b3b80d8
* Tidy up. Trailing whitespace.Jim Grosbach2011-08-161-45/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137721 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a mechanism for optimisation plugins to register passes that all front ↵David Chisnall2011-08-161-1/+14
| | | | | | | | | | ends can use without needing to be aware of the plugin (or the plugin be aware of the front end). Before 3.0, I'd like to add a mechanism for automatically loading a set of plugins from a config file. API suggestions welcome... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137717 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unimplemented method. Fixes PR10658.Rafael Espindola2011-08-161-10/+0
| | | | | | Thanks to Jonas Gafele for noticing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137716 91177308-0d34-0410-b5e6-96231b3b80d8
* MCTargetAsmParser target match predicate support.Jim Grosbach2011-08-151-1/+9
| | | | | | | | | | Allow a target assembly parser to do context sensitive constraint checking on a potential instruction match. This will be used, for example, to handle Thumb2 IT block parsing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137675 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.Devang Patel2011-08-151-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137673 91177308-0d34-0410-b5e6-96231b3b80d8
* Move MatchResultTy enum into base class definition.Jim Grosbach2011-08-151-0/+10
| | | | | | | | No need for it to be redefined as part of every derived target asm parser class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137649 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor. Global variables are part of compile unit so let CompileUnit ↵Devang Patel2011-08-151-0/+7
| | | | | | create new global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137621 91177308-0d34-0410-b5e6-96231b3b80d8
* Tidy up trailing whitespace.Jim Grosbach2011-08-151-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137619 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the last improper use of getGlobalContext() from LLVM.Nick Lewycky2011-08-131-4/+22
| | | | | | | | | | | | | This caused a race condition where a thread calls ~LLVMContextImpl which calls Module::dropAllReferences which calls begin() on an empty ilist that would create the sentinel, which racily accesses the global context. This can not be fixed by locking inside createSentinel because the lock would need to be shared with all users of the global context, including those that reside outside LLVM's own code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137546 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial commit of the 'landingpad' instruction.Bill Wendling2011-08-127-4/+143
| | | | | | | | | | | | | This implements the 'landingpad' instruction. It's used to indicate that a basic block is a landing pad. There are several restrictions on its use (see LangRef.html for more detail). These restrictions allow the exception handling code to gather the information it needs in a much more sane way. This patch has the definition, implementation, C interface, parsing, and bitcode support in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137501 91177308-0d34-0410-b5e6-96231b3b80d8
* Constify.Devang Patel2011-08-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137489 91177308-0d34-0410-b5e6-96231b3b80d8
* Use ArrayRef.Devang Patel2011-08-121-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137485 91177308-0d34-0410-b5e6-96231b3b80d8
* add ifdef's to let people easily remove these dead api for testing.Chris Lattner2011-08-121-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137483 91177308-0d34-0410-b5e6-96231b3b80d8
* add two missing function implsChris Lattner2011-08-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137470 91177308-0d34-0410-b5e6-96231b3b80d8
* add new accessors to reflect new terminology in struct types.Chris Lattner2011-08-121-18/+49
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137468 91177308-0d34-0410-b5e6-96231b3b80d8
* Silence a bunch (but not all) "variable written but not read" warningsDuncan Sands2011-08-121-0/+2
| | | | | | | when building with assertions disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an obscure bug in PointerUnion that would bite PointerUnion3/4. Basically,Chris Lattner2011-08-121-1/+5
| | | | | | | | | | | | | when checking isNull(), we'd pick off the sentinel bit for the outer PointerUnion, but would not recursively convert the inner pointerunion to bool, so if *its* sentinel bit is set, isNull() would incorrectly return false. No testcase, because someone hit this when they were trying to refactor code to use PointerUnion3, but they since found a better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137428 91177308-0d34-0410-b5e6-96231b3b80d8
* include/llvm/Config/config.h.cmake: Reorder to follow config.h.in, and ↵NAKAMURA Takumi2011-08-121-14/+38
| | | | | | import stuff from llvm-config.h.cmake and clang/config.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137424 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Eliminate unused checks and #undef(s) as below;NAKAMURA Takumi2011-08-121-45/+0
| | | | | | | | | | | | | | | | | STACK_DIRECTION YYTEXT_POINTER HAVE_NAMESPACES HAVE_STD_ITERATOR HAVE_FWD_ITERATOR HAVE_BI_ITERATOR HAVE_GLOBAL_HASH_MAP HAVE_GLOBAL_HASH_SET HAVE_GNU_EXT_HASH_MAP HAVE_GNU_EXT_HASH_SET HAVE_STD_EXT_HASH_MAP HAVE_STD_EXT_HASH_SET git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137423 91177308-0d34-0410-b5e6-96231b3b80d8
* include/llvm/Config/llvm-config.h: Reorder and reword to follow (generated) ↵NAKAMURA Takumi2011-08-122-14/+14
| | | | | | config.h.in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137413 91177308-0d34-0410-b5e6-96231b3b80d8
* configure: Update since r136721.NAKAMURA Takumi2011-08-121-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137412 91177308-0d34-0410-b5e6-96231b3b80d8
* A virtual destructor for the class with virtual methods!Nick Lewycky2011-08-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137400 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow loop unrolling to get known trip counts from ScalarEvolution.Andrew Trick2011-08-111-1/+14
| | | | | | | | | | | | | | SCEV unrolling can unroll loops with arbitrary induction variables. It is a prerequisite for -disable-iv-rewrite performance. It is also easily handles loops of arbitrary structure including multiple exits and is generally more robust. This is under a temporary option to avoid affecting default behavior for the next couple of weeks. It is needed so that I can checkin unit tests for updateUnloop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137384 91177308-0d34-0410-b5e6-96231b3b80d8
* DataTypes.h.cmake: Tweak INT32_MIN for MSVC. MSC treats -2147483648 as ↵NAKAMURA Takumi2011-08-111-1/+2
| | | | | | | | -(2147483648U). It caused an unexpected behavior since r137254. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137365 91177308-0d34-0410-b5e6-96231b3b80d8
* Typo.Chad Rosier2011-08-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137286 91177308-0d34-0410-b5e6-96231b3b80d8
* Stay within 80 columns.Devang Patel2011-08-101-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137283 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapplying r136844.Andrew Trick2011-08-101-3/+13
| | | | | | | | | | | | | | | | | | | | | An algorithm for incrementally updating LoopInfo within a LoopPassManager. The incremental update should be extremely cheap in most cases and can be used in places where it's not feasible to regenerate the entire loop forest. - "Unloop" is a node in the loop tree whose last backedge has been removed. - Perform reverse dataflow on the block inside Unloop to propagate the nearest loop from the block's successors. - For reducible CFG, each block in unloop is visited exactly once. This is because unloop no longer has a backedge and blocks within subloops don't change parents. - Immediate subloops are summarized by the nearest loop reachable from their exits or exits within nested subloops. - At completion the unloop blocks each have a new parent loop, and each immediate subloop has a new parent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137276 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup. Remove an extraneous GraphTraits specialization.Andrew Trick2011-08-101-19/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137264 91177308-0d34-0410-b5e6-96231b3b80d8
* Distinguish between two copies of one inlined variable. Take 2.Devang Patel2011-08-101-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137253 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide utility to extract and use lexical scoping information from machine ↵Devang Patel2011-08-101-0/+247
| | | | | | instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137237 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup. Make ScalarEvolution an explicit argument of theAndrew Trick2011-08-101-3/+3
| | | | | | | SimplifyIndVar utility since it is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137202 91177308-0d34-0410-b5e6-96231b3b80d8
* Added a SimplifyIndVar utility to simplify induction variable usersAndrew Trick2011-08-102-0/+60
| | | | | | | | | | | | | | | | | based on ScalarEvolution without changing the induction variable phis. This utility is the main tool of IndVarSimplifyPass, but the pass also restructures induction variables in strange ways that are sensitive to pass ordering. This provides a way for other loop passes to simplify new uses of induction variables created during transformation. The utility may be used by any pass that preserves ScalarEvolution. Soon LoopUnroll will use it. The net effect in this checkin is to cleanup the IndVarSimplify pass by factoring out the SimplifyIndVar algorithm into a standalone utility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137197 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup. Added LoopBlocksDFS::perform for simple clients.Andrew Trick2011-08-101-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137195 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve the name for this variant of IRBuilder::CreateCallPeter Collingbourne2011-08-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137192 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup. Avoid relying on specialization of std::distance.Andrew Trick2011-08-101-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137191 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the LoopUnroller to handle nontrivial loops and partial unrolling.Andrew Trick2011-08-101-0/+5
| | | | | | | | | | | These are not individual bug fixes. I had to rewrite a good chunk of the unroller to make it sane. I think it was getting lucky on trivial completely unrolled loops with no early exits. I included some fairly simple unit tests for partial unrolling. I didn't do much stress testing, so it may not be perfect, but should be usable now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137190 91177308-0d34-0410-b5e6-96231b3b80d8
* Trim an unneeded header.Jakob Stoklund Olesen2011-08-092-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137184 91177308-0d34-0410-b5e6-96231b3b80d8
* Representation of 'atomic load' and 'atomic store' in IR.Eli Friedman2011-08-092-23/+105
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137170 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing file.Rafael Espindola2011-08-091-0/+90
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137162 91177308-0d34-0410-b5e6-96231b3b80d8
* Move CalculateRegClass to MRI::recomputeRegClass.Jakob Stoklund Olesen2011-08-092-5/+11
| | | | | | | | This function doesn't have anything to do with spill weights, and MRI already has functions for manipulating the register class of a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137123 91177308-0d34-0410-b5e6-96231b3b80d8