#
915c5f98 |
| 02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen.
This remove the old DebugLoc
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen.
This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next.
I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC.
llvm-svn: 100209
show more ...
|
#
999c1b92 |
| 02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Revert r100191 since it breaks objc in clang
llvm-svn: 100199
|
#
a972ab85 |
| 02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i3
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100191
show more ...
|
#
009de335 |
| 31-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add new apis for getting/setting !dbg metadata on instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people shoul
add new apis for getting/setting !dbg metadata on instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing.
llvm-svn: 99982
show more ...
|
#
6f7fd288 |
| 30-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.
llvm-svn: 99948
|
#
74605713 |
| 30-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update o
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin.
llvm-svn: 99928
show more ...
|
#
742db687 |
| 29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4975. Avoid referencing empty vector.
llvm-svn: 99840
|
#
4d1aa2a1 |
| 29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pool allocate SDDbgValue nodes.
llvm-svn: 99836
|
#
563fe3cc |
| 25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode o
Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers.
Here is a theoretical example that illustrates why the placement is important.
tmp1 = store tmp1 -> x ... tmp2 = add ... ... call ... store tmp2 -> x
Now mem2reg comes along:
tmp1 = dbg_value (tmp1 -> x) ... tmp2 = add ... ... call ... dbg_value (tmp2 -> x)
When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1.
Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers").
This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed.
llvm-svn: 99469
show more ...
|
#
3c7cde46 |
| 18-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the
Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the branch folding pass to merge tables. Unfortunately, the same getJumpTableIndex() method is also used to merge tables in branch folding, so as a result of this change branch tables are never merged. Worse, the branch folding code is expecting getJumpTableIndex to always return the index of an existing table, but with this change, it never does so. In at least some cases, e.g., pr6543, this creates references to non-existent tables.
I've fixed the problem by adding a new createJumpTableIndex function, which will always create a new table, and I've changed getJumpTableIndex to only look at existing tables.
llvm-svn: 98845
show more ...
|
#
0b39f10d |
| 18-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Fix comment.
llvm-svn: 98830
|
#
7976f6f0 |
| 17-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Debug info intrinsic does not intefer during tail call optimization.
llvm-svn: 98778
|
#
8fce3ddd |
| 16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
reapply r98656 unmodified, which exposed the asmprinter not handling constant unions.
llvm-svn: 98680
|
#
3a374da9 |
| 16-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r98656, its breaking all over the place.
llvm-svn: 98662
|
#
9ae99e0d |
| 16-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
improve support for uniontype and ConstantUnion, patch by Tim Northover!
llvm-svn: 98656
|
#
f2bce7cb |
| 15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Create SDDbgValue for dbg_value intrinsics and remember its connections with DAG nodes. This is a work in progress. Patch by Dale Johannesen!
llvm-svn: 98568
|
#
ca595495 |
| 14-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodes with ppc_f128 type by having the type legalizer turn these back into a call to copysignl.
llvm-svn: 98514
|
#
39ed49df |
| 14-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add DAG nodes to represent FP16 <-> FP32 intrinsics
llvm-svn: 98500
|
#
6e52e9db |
| 14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
get MMI out of the label uniquing business, just go to MCContext to get unique assembler temporary labels.
llvm-svn: 98489
|
#
ee2fbbc9 |
| 14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4".
llvm-svn: 98463
show more ...
|
#
34adc8d2 |
| 14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress.
Unfortunately, this pointed o
change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress.
Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :(
One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert.
llvm-svn: 98459
show more ...
|
#
03fcbcf4 |
| 12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Revert turning copysignl into a COPYSIGN node for the moment: ppc calls copysignl with a 128 bit ppc long double, resulting in a node that the type legalizer doesn't know how to expand.
llvm-svn: 98
Revert turning copysignl into a COPYSIGN node for the moment: ppc calls copysignl with a 128 bit ppc long double, resulting in a node that the type legalizer doesn't know how to expand.
llvm-svn: 98357
show more ...
|
#
607f1825 |
| 12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
Now that it's supported, turn copysignl into a COPYSIGN node.
llvm-svn: 98348
|
#
53ebf8a7 |
| 12-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6577, a bug in sdbuilder lowering select instructions whose true value was not Val#0.
llvm-svn: 98336
|
#
180704dd |
| 11-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
In case of tail call size of Ins and InVals may not match.
llvm-svn: 98277
|