llvm-6502/include/llvm/IR
Rafael Espindola 27c076ae40 Fix most of PR10367.
This patch changes the design of GlobalAlias so that it doesn't take a
ConstantExpr anymore. It now points directly to a GlobalObject, but its type is
independent of the aliasee type.

To avoid changing all alias related tests in this patches, I kept the common
syntax

@foo = alias i32* @bar

to mean the same as now. The cases that used to use cast now use the more
general syntax

@foo = alias i16, i32* @bar.

Note that GlobalAlias now behaves a bit more like GlobalVariable. We
know that its type is always a pointer, so we omit the '*'.

For the bitcode, a nice surprise is that we were writing both identical types
already, so the format change is minimal. Auto upgrade is handled by looking
through the casts and no new fields are needed for now. New bitcode will
simply have different types for Alias and Aliasee.

One last interesting point in the patch is that replaceAllUsesWith becomes
smart enough to avoid putting a ConstantExpr in the aliasee. This seems better
than checking and updating every caller.

A followup patch will delete getAliasedGlobal now that it is redundant. Another
patch will add support for an explicit offset.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209007 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-16 19:35:39 +00:00
..
Argument.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
AssemblyAnnotationWriter.h Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Attributes.h IR: Cleanup AttributeSet::get for AttrBuilder 2014-05-03 23:00:35 +00:00
AutoUpgrade.h [Layering] Move AutoUpgrade.h into the IR library where its 2014-03-05 10:34:14 +00:00
BasicBlock.h Fix some obvious Doxygen comment bugs. 2014-05-06 05:05:59 +00:00
CallingConv.h Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'" 2014-05-09 22:56:42 +00:00
CallSite.h Improve 'tail' call marking in TRE. A bootstrap of clang goes from 375k calls marked tail in the IR to 470k, however this improvement does not carry into an improvement of the call/jmp ratio on x86. The most common pattern is a tail call + br to a block with nothing but a 'ret'. 2014-05-05 23:59:03 +00:00
CFG.h [C++11] Add range based accessors for the Use-Def chain of a Value. 2014-03-09 03:16:01 +00:00
CMakeLists.txt [CMake] intrinsics_gen: Use add_public_tablegen_target(). 2014-02-20 13:42:16 +00:00
Constant.h [C++11] Add 'override' keyword to IR library. 2014-03-05 06:35:38 +00:00
ConstantFolder.h [Modules] Move the ConstantFolder into the IR library where it can 2014-03-04 12:02:47 +00:00
ConstantRange.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
Constants.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
DataLayout.h Fix build failure with MSVC, following r208680 2014-05-13 11:16:22 +00:00
DebugInfo.h DebugInfo: Use enum instead of unsigned 2014-05-07 12:49:08 +00:00
DebugLoc.h [BUG][REFACTOR] 2014-05-07 09:51:22 +00:00
DerivedTypes.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
DiagnosticInfo.h Inliner::OptimizationRemark: Fix crash in clang/test/Frontend/optimization-remark.c on some hosts, including --vg. 2014-04-17 12:22:14 +00:00
DiagnosticPrinter.h [C++11] Add 'override' keyword to IR library. 2014-03-05 06:35:38 +00:00
DIBuilder.h PR19598: Provide the ability to RAUW a declaration with itself, creating a non-temporary copy and using that to RAUW. 2014-05-06 03:41:57 +00:00
Dominators.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
Function.h Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
GetElementPtrTypeIterator.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
GlobalAlias.h Fix most of PR10367. 2014-05-16 19:35:39 +00:00
GlobalObject.h Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
GlobalValue.h Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
GlobalVariable.h Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
GVMaterializer.h Style update: don't duplicate the function name. 2014-05-07 17:04:45 +00:00
InlineAsm.h Remove copy ctors that did the same thing as the default one. 2014-03-11 11:32:49 +00:00
InstIterator.h [Modules] Move InstIterator out of the Support library, where it had no 2014-03-04 10:30:26 +00:00
InstrTypes.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
Instruction.def Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
Instruction.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
Instructions.h Add 'musttail' marker to call instructions 2014-04-24 20:14:34 +00:00
InstVisitor.h [Layering] Move InstVisitor.h into the IR library as it is pretty 2014-03-06 03:23:41 +00:00
IntrinsicInst.h Add some convenience accessors for the underlying Use of an operand. 2014-02-25 03:34:17 +00:00
Intrinsics.h Intrinsics: add LLVMHalfElementsVectorType constraint 2014-03-29 07:04:54 +00:00
Intrinsics.td Implememting named register intrinsics 2014-05-06 16:51:25 +00:00
IntrinsicsAArch64.td Intrinsics: expand semantics of LLVMExtendedVectorType (& trunc) 2014-03-28 12:31:39 +00:00
IntrinsicsARM64.td AArch64/ARM64: mark fmul intrinsic as commutative. 2014-04-22 10:10:14 +00:00
IntrinsicsARM.td ARM: remove @llvm.arm.sevl 2014-04-25 17:51:25 +00:00
IntrinsicsHexagon.td
IntrinsicsMips.td [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
IntrinsicsNVVM.td [NVPTX] Add preliminary intrinsics and codegen support for textures/surfaces 2014-04-09 15:39:15 +00:00
IntrinsicsPowerPC.td Implement PPC counter loops as a late IR-level pass 2013-05-15 21:37:41 +00:00
IntrinsicsR600.td
IntrinsicsX86.td AVX-512: changes in intrinsics 2014-05-12 07:18:51 +00:00
IntrinsicsXCore.td [XCore] Add intrinsic for CLRPT (clear port time) instruction. 2014-02-25 17:31:15 +00:00
IRBuilder.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
IRPrintingPasses.h [PM] Fix stale header blocker, found by Duncan Smith in code review! 2014-01-14 05:50:19 +00:00
LeakDetector.h [Modules] Move the LeakDetector header into the IR library where the 2014-03-04 12:46:06 +00:00
LegacyPassManager.h [C++11] Add 'override' keyword to IR library. 2014-03-05 06:35:38 +00:00
LegacyPassManagers.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
LegacyPassNameParser.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LLVMContext.h Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
Mangler.h Add back r201608, r201622, r201624 and r201625 2014-02-19 17:23:20 +00:00
MDBuilder.h Move MDBuilder's methods out of line. 2014-04-12 14:26:59 +00:00
Metadata.h Remove AssemblyAnnotationWriter from NamedMDNode::print. 2014-04-23 12:23:05 +00:00
Module.h Style update: don't duplicate the function name. 2014-05-07 16:43:23 +00:00
NoFolder.h [Modules] Move the NoFolder into the IR library as it creates 2014-03-04 12:05:47 +00:00
OperandTraits.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Operator.h [Modules] Move GetElementPtrTypeIterator into the IR library. As its 2014-03-04 10:40:04 +00:00
PassManager.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
PatternMatch.h [Modules] Move the LLVM IR pattern match header into the IR library, it 2014-03-04 11:08:18 +00:00
PredIteratorCache.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
SymbolTableListTraits.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
Type.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
TypeBuilder.h #include <climits> instead of <limits.h> in C++ header file. 2013-06-13 23:49:09 +00:00
TypeFinder.h Move TypeFinder.h into the IR tree, it clearly belongs with the IR library. 2013-01-07 15:43:51 +00:00
Use.h Updated the link to the correct URL. 2014-04-29 13:21:05 +00:00
User.h [ADT] Make the iterator adaptor utility a touch more general by 2014-04-29 01:57:35 +00:00
Value.h Split GlobalValue into GlobalValue and GlobalObject. 2014-05-13 18:45:48 +00:00
ValueHandle.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
ValueMap.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
ValueSymbolTable.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Verifier.h verify-di: Implement DebugInfoVerifier 2014-04-15 16:27:38 +00:00