| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector.
Likewise for eh.typeid.for. This aligns us with gcc, which always uses a
32 bit value for the selector on all platforms. My understanding is that
the register allocator used to assert if the selector intrinsic size didn't
match the pointer size, and this was the reason for introducing the two
variants. However my testing shows that this is no longer the case (I
fixed some bugs in selector lowering yesterday, and some more today in the
fastisel path; these might have caused the original problems).
llvm-svn: 84106
|
| |
|
|
|
|
|
| |
where the element is of a basic builtin type. For example, to get
an i8* use getInt8PtrTy.
llvm-svn: 83379
|
| |
|
|
|
|
| |
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
|
| |
|
|
| |
llvm-svn: 80073
|
| |
|
|
|
|
|
|
| |
llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977
|
| |
|
|
| |
llvm-svn: 78948
|
| |
|
|
| |
llvm-svn: 77635
|
| |
|
|
| |
llvm-svn: 77516
|
| |
|
|
| |
llvm-svn: 77366
|
| |
|
|
|
|
| |
Also, change MDString to use a StringRef.
llvm-svn: 77098
|
| |
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
| |
|
|
| |
llvm-svn: 76702
|
| |
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
| |
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
| |
|
|
| |
llvm-svn: 74973
|
| |
|
|
| |
llvm-svn: 63812
|
| |
|
|
|
|
| |
and llvm-gcc.
llvm-svn: 63786
|
| |
|
|
|
|
|
|
|
| |
target directories themselves. This also means that VMCore no longer
needs to know about every target's list of intrinsics. Future work
will include converting the PowerPC target to this interface as an
example implementation.
llvm-svn: 63765
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622
|
| |
|
|
|
|
|
| |
to different address spaces. This alters the naming scheme for those
intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32
llvm-svn: 54195
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941
|
| |
|
|
|
|
|
| |
correctly handle the case where multiple-return-value constructs
were used to return one or zero values.
llvm-svn: 53890
|
| |
|
|
|
|
|
|
| |
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub
llvm-svn: 52706
|
| |
|
|
|
|
| |
isn't actually called yet.
llvm-svn: 52435
|
| |
|
|
| |
llvm-svn: 51533
|
| |
|
|
|
|
| |
x86.sse2.unpckl.pd intrinsics. These will be lowered into shuffles.
llvm-svn: 51531
|
| |
|
|
| |
llvm-svn: 51523
|
| |
|
|
|
|
| |
Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
llvm-svn: 51200
|
| |
|
|
|
|
| |
allow us to simplify the horribly complicated matching code.
llvm-svn: 50601
|
| |
|
|
|
|
|
|
| |
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
|
| |
|
|
| |
llvm-svn: 48627
|
| |
|
|
| |
llvm-svn: 48569
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. There is now a "PAListPtr" class, which is a smart pointer around
the underlying uniqued parameter attribute list object, and manages
its refcount. It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
ParamAttrsWithIndex's, no need to make a SmallVector of a specific
size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
dereferencing the pointer is simplified to just access the
PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
bit simpler.
Phase #2 will rename some stuff (e.g. PAListPtr) and do other less
invasive changes.
llvm-svn: 48289
|
| |
|
|
|
|
|
| |
stuff into ParamAttrsList.h. Per feedback from
ParamAttrs changes.
llvm-svn: 47504
|
| |
|
|
|
|
| |
annoying warnings.
llvm-svn: 47367
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
| |
llvm-svn: 45140
|
| |
|
|
|
|
| |
it's auto-upgraded to a shufflevector instruction.
llvm-svn: 45131
|
| |
|
|
|
|
| |
parameter. Change this to be <1 x i64> instead, which matches the assembler instruction.
llvm-svn: 45027
|
| |
|
|
|
|
|
|
|
| |
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
llvm-svn: 44359
|
| |
|
|
|
|
|
|
| |
LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.
llvm-svn: 40807
|
| |
|
|
| |
llvm-svn: 32157
|
| |
|
|
| |
llvm-svn: 31955
|
| |
|
|
|
|
|
|
|
|
| |
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
|
| |
|
|
|
|
|
| |
stdout when the output of llvm-as is also written to stdout. We'll have to
fix tcl some other way.
llvm-svn: 28557
|
| |
|
|
|
|
|
| |
Tcl to claim that the program had an error and thus produces errors in
the dejagnu testing when its really just a warning.
llvm-svn: 28556
|
| |
|
|
| |
llvm-svn: 27617
|
| |
|
|
| |
llvm-svn: 27122
|
| |
|
|
| |
llvm-svn: 26996
|