| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
doesn't do the "aligning" for Cygwin, Mingw, and Windows. But aligning it on Darwin and Linux breaks gcc compatibility. That ruled out all the platforms we support!
llvm-svn: 55756
|
| |
|
|
|
|
| |
No functional change (and no FE change to generate them).
llvm-svn: 55753
|
| |
|
|
|
|
| |
in FastISel.
llvm-svn: 55748
|
| |
|
|
|
|
|
| |
classes in the llvm namespace having members with types from
anonymous namespaces.
llvm-svn: 55747
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
HandlePHINodesInSuccessorBlocks that works FastISel-style. This
allows PHI nodes to be updated correctly while using FastISel.
This also involves some code reorganization; ValueMap and
MBBMap are now members of the FastISel class, so they needn't
be passed around explicitly anymore. Also, SelectInstructions
is changed to SelectInstruction, and only does one instruction
at a time.
llvm-svn: 55746
|
| |
|
|
|
|
| |
size.
llvm-svn: 55745
|
| |
|
|
| |
llvm-svn: 55744
|
| |
|
|
| |
llvm-svn: 55742
|
| |
|
|
| |
llvm-svn: 55740
|
| |
|
|
|
|
| |
hundred times on 176.gcc. I don't know the performance impact yet, the heuristic is quite simple still.
llvm-svn: 55734
|
| |
|
|
|
|
|
|
|
| |
list that have internal linkage; the linker doesn't need
or want this. (These objects must still be preserved
at compile time, so just removing them from the llvm.used
list doesn't work.) Should affect only Darwin.
llvm-svn: 55722
|
| |
|
|
| |
llvm-svn: 55720
|
| |
|
|
| |
llvm-svn: 55717
|
| |
|
|
| |
llvm-svn: 55716
|
| |
|
|
|
|
|
|
|
|
| |
analysis would bail out without removing function
records for other members of the SCC (which may exist
if those functions read or wrote global variables).
Since these are initialized to "readnone", this
resulted in incorrect alias analysis results.
llvm-svn: 55714
|
| |
|
|
| |
llvm-svn: 55713
|
| |
|
|
| |
llvm-svn: 55712
|
| |
|
|
| |
llvm-svn: 55711
|
| |
|
|
| |
llvm-svn: 55708
|
| |
|
|
| |
llvm-svn: 55704
|
| |
|
|
|
|
|
|
|
| |
not dominated by the materialization. This is
the simple fix, materializing the constant before every use. It might be better to either track domination of uses or
to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses.
llvm-svn: 55703
|
| |
|
|
|
|
|
| |
and SelectionDAGLowering classes, out of SelectionDAGISel.cpp and put
it in a separate file, SelectionDAGBuild.cpp.
llvm-svn: 55701
|
| |
|
|
| |
llvm-svn: 55700
|
| |
|
|
|
|
| |
routines and move them into a separate file, ScheduleDAGEmit.cpp.
llvm-svn: 55699
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when searching for redundant subregister dead/kill bits.
Previously it was common to see instructions marked like this:
"RET %EAX<imp-use,kill>, %AX<imp-use,kill>"
With this change, addRegisterKilled continues scanning after
finding the %EAX operand, so it proceeds to discover the
redundant %AX kill and eliminates it, producing this:
"RET %EAX<imp-use,kill>"
This currently has no effect on the generated code.
llvm-svn: 55698
|
| |
|
|
|
|
|
|
| |
doesNotAccessMemory, check doesNotAccessMemory
first, since otherwise functions may be
marked readonly rather than readnone.
llvm-svn: 55697
|
| |
|
|
|
|
|
|
|
|
|
| |
callgraph, when one member of a SCC calls another
then the analysis would drop to mod-ref because
there is (usually) no function info for the callee
yet; fix this. Teach the analysis about function
attributes, in particular the readonly attribute
(which requires being careful about globals).
llvm-svn: 55696
|
| |
|
|
|
|
| |
equivalence.
llvm-svn: 55694
|
| |
|
|
| |
llvm-svn: 55693
|
| |
|
|
| |
llvm-svn: 55692
|
| |
|
|
| |
llvm-svn: 55690
|
| |
|
|
|
|
|
|
|
| |
be folded. Instead, fail to fold the entire vector.
We could also return a vector with some elements folded and some not. If anyone
thinks that's a better approach, please speak up!
llvm-svn: 55689
|
| |
|
|
|
|
| |
case-sensitive filesystems.
llvm-svn: 55687
|
| |
|
|
| |
llvm-svn: 55685
|
| |
|
|
| |
llvm-svn: 55682
|
| |
|
|
| |
llvm-svn: 55680
|
| |
|
|
|
|
| |
makes it easier for targets to define its own fastisel class.
llvm-svn: 55679
|
| |
|
|
| |
llvm-svn: 55678
|
| |
|
|
| |
llvm-svn: 55676
|
| |
|
|
|
|
| |
if possible.
llvm-svn: 55674
|
| |
|
|
| |
llvm-svn: 55673
|
| |
|
|
| |
llvm-svn: 55668
|
| |
|
|
| |
llvm-svn: 55657
|
| |
|
|
| |
llvm-svn: 55656
|
| |
|
|
| |
llvm-svn: 55647
|
| |
|
|
| |
llvm-svn: 55646
|
| |
|
|
| |
llvm-svn: 55645
|
| |
|
|
| |
llvm-svn: 55643
|
| |
|
|
|
|
|
| |
even in FastISel mode in the case where FastISel successfully
selects all the instructions.
llvm-svn: 55641
|
| |
|
|
|
|
| |
# first commit to llvm, so whatch out :)
llvm-svn: 55631
|