581600bfc3060ee13afb278cd87e25da5b5f7db2 |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Enumerate the InlineAsm dialects and rename the nsdialect to inteldialect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
03fe8f6ab6977e0a07b17b84e9b33939d2f23025 |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Add the inline assembly dialect, AsmDialect, to the InlineAsm class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
eea81f32cdd2f0408aaf83878cf45b5024cf6b57 |
|
07-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Switch this code to use hash_combine_range rather than incremental calls to hash_combine. One of the interfaces could already do this, and the other can just use a small buffer. This is a much more efficient way to use the hash_combine interface, although I don't have any particular benchmark where this code was hot, so I can't measure much of an impact. It at least doesn't slow anything down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
4e3e5dec1a2a479891b4081c1c715a97fd85644d |
|
06-Mar-2012 |
Jay Foad <jay.foad@gmail.com> |
Change ConstantAggrUniqueMap to use Chandler's new hashing implementation. Patch by Meador Inge git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
2cb395eae71dacda49ca3fe758618fc3e0701659 |
|
05-Feb-2012 |
Talin <viridia@gmail.com> |
Efficient Constant Uniquing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
a7c698823e4ffa4589bde1ff6de60b6af0cdba5a |
|
26-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
smallvectorize and ArrayRef'ize some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
9df0fb4e8176325d713ba4eb67791e36cb833432 |
|
23-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
convert CAZ, UndefValue, and CPN to use DenseMap's again, this time without using OwningPtr. OwningPtr would barf when the densemap had to reallocate, which doesn't appear to happen on the regression test suite, but obviously happens in real life :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
95889fa9c31779c9ef3e71d633b8d9146648bc97 |
|
23-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
revert r148691 and 148693 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
3755615411713b2b27b1b2ffd3886584295843d1 |
|
23-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
switch UndefValue and ConstantPointerNull over to DenseMap's for uniquing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
2a82d82936729b02fe1bbdcbfe764a61b8999be1 |
|
23-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Replace a use of ConstantUniqueMap for CAZ constants with a simple DenseMap. Now that the type system rewrite has landed, there is no need for its complexity and std::map'ness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
fdebc38523b397743973ff6a2d2e93b112dd96e5 |
|
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
2d24e2a396a1d211baaeedf32148a3b657240170 |
|
20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
1afcace3a3a138b1b18e5c6270caa8dae2261ae2 |
|
09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Land the long talked about "type system rewrite" patch. This patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
2a4a6fecf0b8c92223f8fdf19545b564b7d3fcde |
|
22-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Extend ConstantUniqueMap with a new template parameter ValRefType, representing a constant reference to ValType. Normally this is just "const ValType &", but when ValType is a std::vector we want to use ArrayRef as the reference type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
d30aa5a1edac5256573e8d76dd155df3d3fdec84 |
|
13-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
PR9214: Convert ConstantExpr::getIndices() to return an ArrayRef, plus related tweaks to ExprMapKeyType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
67c619ba3eae68dcdb3f9340d82b33173aa0c256 |
|
11-Jan-2011 |
Jay Foad <jay.foad@gmail.com> |
FixedNumOperandTraits and VariadicOperandTraits assumed that, given a "this" pointer for any subclass of User, you could static_cast it to User* and then reinterpret_cast that to Use* to get the end of the operand list. This isn't a safe assumption in general, because the static_cast might adjust the "this" pointer. Fixed by having these OperandTraits classes take an extra template parameter, which is the subclass of User. This is groundwork for PR889. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
61c70e98ac3c7504d31dd9bc81c4e9cb998e9984 |
|
28-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove unions from LLVM IR. They are severely buggy and not being actively maintained, improved, or extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
93604b6de20f6a2ce160bfa65ef5d99cc8e577f3 |
|
17-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
Fix PR7658, a problem where type refinement can trigger constant replacement which was botching its handling of types. Use of getType() instead of getRawType() was causing the type map in constant folding to be updated wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
c1dc0679706f7538cd17169b920967c54661e5b6 |
|
22-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Free all Constants in ~LLVMConstantImpl. We avoid assertion failures by dropping all references from all constants that can use other constants before trying to destroy any of them. I also had to free bugpoint's Module in ~BugDriver(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
bf48a9b6db111fc14a8faef1adefbce5d807aaef |
|
21-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Memoize InlineAsms into the LLVMContext and delete them on shutdown. Fixes PR803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
fdfeb6976f07ad10d809b922ed7376ba2a3539be |
|
12-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Add support for a union type in LLVM IR. Patch by Talin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
da23d93d9bb6238757e29b1abee571a0052ab8fc |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Fix a build error and change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
43078d693102656c7ea4f811b5d791f380996023 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
c4775e4b973aaf6695dc00a3403b8b64f5257568 |
|
01-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of locking from LLVMContextImpl. Since only one thread can be banging on a context at a time, this isn't needed. Owen, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
03236140fa4ef316a605717e090276d6a0d42828 |
|
28-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Rename lib/VMCore/ConstantsContext.h:ValueMap<> to ConstantUniqueMap<> to avoid colliding with llvm/ADT/ValueMap.h:ValueMap<>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
e3394d4a49db24aa802432e04d1054d83a052ff1 |
|
15-Sep-2009 |
Dan Gohman <gohman@apple.com> |
When a constant's type is refined, update the constant in place instead of cloning and RAUWing it. - Make AbstractTypeUser a friend of Value so that it can offer its subclasses a way to update a Value's type in place. This is better than a universally visible setType method on Value, and it's sufficient for the immediate need. - Eliminate the constant "convert" functions. This eliminates a lot of logic duplication, and fixes a complicated bug where a constant can't actually be cloned during the type refinement process because some of the types that its folder needs are half-destroyed, being in the middle of refinement themselves. - Move the getValType functions from being static overloaded functions in Constants.cpp to be members of class template specializations in ConstantsContext.h. This means that the code ends up getting instantiated twice, however it also makes it possible to eliminate all "convert" functions, so it's not a big net code size increase. And if desired, the duplicate instantiations could be eliminated with some reorganization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
4acac62e8d0d90aac3368ae43bab7595c444fac0 |
|
13-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Preserve the inbounds flag, so that the constant folder doesn't recompute it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
f8dbee7cea072eb63ae343759975109553697bcb |
|
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
59bf4fcc0680e75b408579064d1205a132361196 |
|
06-Sep-2009 |
Duncan Sands <baldrick@free.fr> |
Public and private corrections, warned about by icc (#304). Patch by Erick Tryzelaar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
92a97a9166e359e195d949e63d7e24a4a33284cf |
|
06-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", this breaks MiniSAT on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
859fff476dfe8d83abdf4621b1d20062c0daa85c |
|
04-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Include optional subclass flags, such as inbounds, nsw, etc., in the Constant uniquing tables. This allows distinct ConstantExpr objects with the same operation and different flags. Even though a ConstantExpr "a + b" is either always overflowing or never overflowing (due to being a ConstantExpr), it's still necessary to be able to represent it both with and without overflow flags at the same time within the IR, because the safety of the flag may depend on the context of the use. If the constant really does overflow, it wouldn't ever be safe to use with the flag set, however the use may be in code that is never actually executed. This also makes it possible to merge all the flags tests into a single test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
5f4ac848d94b0a92e19ac7f2b3d0284d7d323173 |
|
03-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Now Bitcode reader bug is fixed. Reapply 80839. Use CallbackVH, instead of WeakVH, to hold MDNode elements. Use FoldingSetNode to unique MDNodes in a context. Use CallbackVH hooks to update context's MDNodeSet appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
8fc55764139f478087fc0a0d3c02da436e84bf43 |
|
02-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Revert 80839 for now. It causes test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
d9489cbb0cf933da9e2154a5336533d6254a5c30 |
|
02-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Use CallbackVH, instead of WeakVH, to hold MDNode elements. Use FoldingSetNode to unique MDNodes in a context. Use CallbackVH hooks to update context's MDNodeSet appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
2cd5155c0e8f2448dbdbc9c9cd468e589f9745e9 |
|
31-Aug-2009 |
Torok Edwin <edwintorok@gmail.com> |
Free the constants that have no uses in ~LLVMContext. This fixes leaks from LLVMContext in multithreaded apps. Since constants are only deleted if they have no uses, it is safe to not delete a Module on shutdown, as many single-threaded tools do. Multithreaded apps should however delete the Module before destroying the Context to ensure that there are no leaks (assuming they use a different context for each thread). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
569f121f4ecc53f8ab505c4ccb6e1e77c78e188d |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some DOUTs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
b1352e953458711bcceb5600e25e9c5c94ad9013 |
|
23-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Use standard LLVM-style headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
9d3627ea27195534242ec8026a9b8c888b85bbba |
|
11-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Remove dead metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
e74f3c0ce6c16908a8690824704f148ecaf7ddb1 |
|
10-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename ConvertType to ConvertConstant to avoid a name conflict on llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
b2d555b25bee4df71b33bbf9a3d730339b6a4081 |
|
10-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
g++ 4.0 doesn't have std::vector::data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
0631fce85050f8f633e5fd032875d9151e0db4da |
|
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Change the MDNode uniquing to a ValueMap, at Devang's request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|
e2942c0c7da45686b74e8e8248fd84e98fee435e |
|
05-Aug-2009 |
Owen Anderson <resistor@mac.com> |
It helps if I remember to actually add the file... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/ConstantsContext.h
|