History log of /external/llvm/lib/VMCore/ConstantsContext.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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