- Jun 04, 2013
-
-
Venkatraman Govindaraju authored
llvm-svn: 183243
-
David Majnemer authored
IndVarSimplify is willing to move divide instructions outside of their loop bodies if they are invariant of the loop. However, it may not be safe to expand them if we do not know if they can trap. Instead, check to see if it is not safe to expand the instruction and skip the expansion. This fixes PR16041. Testcase by Rafael Ávila de Espíndola. llvm-svn: 183239
-
David Majnemer authored
The ARM backend did not expect LDRBi12 to hold a constant pool operand. Allow for LLVM to deal with the instruction similar to how it deals with LDRi12. This fixes PR16215. llvm-svn: 183238
-
Bob Wilson authored
Specifying the load address for Darwin i386 dylibs was a performance optimization for dyld that is not relevant for x86_64 or arm. We can just remove this now. llvm-svn: 183230
-
Vincent Lejeune authored
llvm-svn: 183229
-
Vincent Lejeune authored
llvm-svn: 183228
-
Rafael Espindola authored
The problem this time seems to be a thinko. We were assuming that in the CFG A | \ | B | / C speculating the basic block B would cause only the phi value for the B->C edge to be speculated. That is not true, the phi's are semantically in the edges, so if the A->B->C path is taken, any code needed for A->C is not executed and we have to consider it too when deciding to speculate B. llvm-svn: 183226
-
Hans Wennborg authored
llvm-svn: 183219
-
Benjamin Kramer authored
GCC complains about casting away const. llvm-svn: 183216
-
Vladimir Medic authored
Test commit for user vmedic, to verify commit access. One line of comment is added to MipsAsmParser.cpp. llvm-svn: 183215
-
Alexey Samsonov authored
[llvm-symbolizer] Avoid calling slow getSymbolSize for Mach-O files. Assume that symbols with zero size are in fact large enough. llvm-svn: 183213
-
Bill Wendling authored
llvm-svn: 183210
-
Michael Gottesman authored
Specifically the following work was done: 1. If the operation was not implemented, I implemented it. 2. If the operation was already implemented, I just moved its location in the APFloat header into the IEEE-754R 5.7.2 section. If the name was incorrect, I put in a comment giving the true IEEE-754R name. Also unittests have been added for all of the functions which did not already have a unittest. llvm-svn: 183179
-
Aaron Ballman authored
llvm-svn: 183176
-
Aaron Ballman authored
llvm-svn: 183175
-
Shuxin Yang authored
(4.58s vs 3.2s on an oldish Mac Tower). The corresponding src is excerpted bellow. The lopp accounts for about 90% of execution time. -------------------- cat -n test-suite/MultiSource/Benchmarks/Olden/em3d/make_graph.c 90 91 for (k=0; k<j; k++) 92 if (other_node == cur_node->to_nodes[k]) break; The defective layout is sketched bellow, where the two branches need to swap. ------------------------------------------------------------------------ L: ... if (cond) goto out-of-loop goto L While this code sequence is defective, I don't understand why it incurs 1/3 of execution time. CPU-event-profiling indicates the poor laoyout dose not increase in br-misprediction; it dosen't increase stall cycle at all, and it dosen't prevent the CPU detect the loop (i.e. Loop-Stream-Detector seems to be working fine as well)... The root cause of the problem is that the layout pass calls AnalyzeBranch() with basic-block which is not updated to reflect its current layout. rdar://13966341 llvm-svn: 183174
-
Nick Lewycky authored
llvm-svn: 183167
-
- Jun 03, 2013
-
-
David Majnemer authored
PR16069 is an interesting case where an incoming value to a PHI is a trap value while also being a 'ConstantExpr'. We do not consider this case when performing the 'HoistThenElseCodeToIf' optimization. Instead, make our modifications more conservative if we detect that we cannot transform the PHI to a select. llvm-svn: 183152
-
David Majnemer authored
llvm-svn: 183151
-
Rafael Espindola authored
Thanks to Sean Silva for noticing it! llvm-svn: 183148
-
Rafael Espindola authored
This was missing from r182908. I didn't noticed it at the time because the MCJIT tests were disabled when building with cmake on ppc64 (which I fixed in r183143). llvm-svn: 183147
-
Rafael Espindola authored
llvm-svn: 183143
-
Tom Stellard authored
llvm-svn: 183138
-
Tom Stellard authored
llvm-svn: 183137
-
Tom Stellard authored
llvm-svn: 183136
-
Tom Stellard authored
This is necessary to avoid generating VGPR to SGPR copies in some cases. llvm-svn: 183135
-
Tom Stellard authored
llvm-svn: 183134
-
Tom Stellard authored
llvm-svn: 183133
-
Tom Stellard authored
The CopyToReg nodes will sometimes try to copy a value from a VGPR to an SGPR. This kind of copy is not possible, so we need to detect VGPR->SGPR copies and do something else. The current strategy is to replace these copies with VGPR->VGPR copies and hope that all the users of CopyToReg can accept VGPRs as arguments. llvm-svn: 183132
-
Tom Stellard authored
llvm-svn: 183131
-
Tom Stellard authored
The lowering of stores is now mostly handled in the tablegen files. No more BUFFER_STORE nodes I generated during legalization. llvm-svn: 183130
-
Vincent Lejeune authored
llvm-svn: 183111
-
Vincent Lejeune authored
llvm-svn: 183108
-
Vincent Lejeune authored
llvm-svn: 183107
-
Vincent Lejeune authored
llvm-svn: 183106
-
Kostya Serebryany authored
llvm-svn: 183104
-
Ahmed Bougacha authored
llvm-svn: 183103
-
Alexey Samsonov authored
llvm-svn: 183102
-
Manuel Klimek authored
This is needed in clang so one can check if the object needs the destructor called after its memory was freed. This is useful when creating many APInt/APFloat objects with placement new, where the overhead of tracking the pointers for cleanup is significant. llvm-svn: 183100
-
Venkatraman Govindaraju authored
llvm-svn: 183094
-