llvm/lib/VMCore
Dale Johannesen 0488fb649a Massive rewrite of MMX:
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.

Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics. 

MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces.  Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.

The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 23:57:10 +00:00
..
AsmWriter.cpp Add ret instruction to PTX backend 2010-09-25 07:46:17 +00:00
Attributes.cpp Fix a threaded LLVM bug due the need for operator= on reference counted AttrListImpl's. It might 2010-09-16 00:27:35 +00:00
AutoUpgrade.cpp Massive rewrite of MMX: 2010-09-30 23:57:10 +00:00
BasicBlock.cpp Skip debug info when looking for existing EH calls at the 2010-04-02 21:49:27 +00:00
CMakeLists.txt Convert the internal PassRegistrar class into a new, external PassRegistry class. No intended functionality change at this point. 2010-07-20 18:39:06 +00:00
ConstantFold.cpp remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
ConstantFold.h eliminate a bunch of pointless LLVMContext arguments. 2010-02-01 20:48:08 +00:00
Constants.cpp remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
ConstantsContext.h remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
Core.cpp Add X86 MMX type to bitcode and Type. 2010-09-10 20:55:01 +00:00
DebugLoc.cpp rename NewDebugLoc -> DebugLoc, prune #includes in DebugLoc.h. 2010-04-02 20:21:22 +00:00
Dominators.cpp Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock: 2010-07-26 17:55:15 +00:00
Function.cpp Introduce ImmutableCallSite, useful for contexts where no mutation 2010-04-01 08:21:08 +00:00
Globals.cpp Make GlobalValue alignment consistent with load, store, and alloca 2010-07-28 20:56:48 +00:00
GVMaterializer.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
InlineAsm.cpp Silence some constructor ordering warnings. 2010-09-13 18:25:05 +00:00
Instruction.cpp Rename removeAllMetadata to clearMetadataHashEntries and simplify 2010-07-20 22:25:04 +00:00
Instructions.cpp Massive rewrite of MMX: 2010-09-30 23:57:10 +00:00
IntrinsicInst.cpp warmup ritual: use high-level argument accessors 2010-06-22 19:46:37 +00:00
IRBuilder.cpp make irbuilder use the new optimized debug info accessors. 2010-03-31 04:09:11 +00:00
LeakDetector.cpp remove a bunch of locking from LLVMContextImpl. Since only one thread 2009-11-01 18:42:03 +00:00
LeaksContext.h Fix a bunch of namespace polution. 2010-04-15 17:08:50 +00:00
LLVMContext.cpp Remove the experimental AliasAnalysis::getDependency interface, which 2010-09-14 21:25:10 +00:00
LLVMContextImpl.cpp Add X86 MMX type to bitcode and Type. 2010-09-10 20:55:01 +00:00
LLVMContextImpl.h Add X86 MMX type to bitcode and Type. 2010-09-10 20:55:01 +00:00
Makefile Enable RTTI again. While this works fine for LLVM, it creates an ABI 2010-04-14 05:51:59 +00:00
Metadata.cpp When an MDNode changes to become identical to another MDNode, 2010-09-28 22:07:19 +00:00
Module.cpp Clarify the ownership model of LLVMContext and Module. Namely, contexts own 2010-09-08 18:03:32 +00:00
Pass.cpp Revert r111199; it breaks -debug-pass=Structure output. 2010-08-19 01:29:07 +00:00
PassManager.cpp Revert r111199; it breaks -debug-pass=Structure output. 2010-08-19 01:29:07 +00:00
PassRegistry.cpp Allow the PassRegistry mutex to be lazily initialized, and clean up the global namespace at the same time. 2010-09-16 23:44:50 +00:00
PrintModulePass.cpp Remove redundant inline keywords. 2010-08-16 21:57:30 +00:00
SymbolTableListTraitsImpl.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
Type.cpp Massive rewrite of MMX: 2010-09-30 23:57:10 +00:00
TypesContext.h remove unions from LLVM IR. They are severely buggy and not 2010-08-28 04:09:24 +00:00
TypeSymbolTable.cpp Fix -Wcast-qual warnings. 2010-04-19 15:42:05 +00:00
Use.cpp precompute 20 tags 2010-07-19 14:48:15 +00:00
Value.cpp After updating value handles for RAUW, check that no weak or tracking handles 2010-07-27 06:53:14 +00:00
ValueSymbolTable.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
ValueTypes.cpp Add x86MMX a few more places. 2010-09-15 00:52:23 +00:00
Verifier.cpp Allow llvm.gcroot to work with non-pointer allocas. 2010-09-30 20:23:47 +00:00