Dear, I am currently working on one specific architecture. When I make changes and try to "make" it takes a very long time as It compiles all the files in the source. My question is since I am only editing a few files in the architecture directory and some files in include directory, Can I speed up my "make" by running "make" only for a few files? Can such changes be accommodated in the MakeFiles to get the "make" done quickly? -- Pratik -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140612/c53f2b05/attachment.html>
On 12 Jun 2014, at 04:58, pratik dand <pratikdand143 at gmail.com> wrote:> I am currently working on one specific architecture. When I make changes and try to "make" it takes a very long time as It compiles all the files in the source. > > My question is since I am only editing a few files in the architecture directory and some files in include directory, Can I speed up my "make" by running "make" only for a few files? > Can such changes be accommodated in the MakeFiles to get the "make" done quickly?If you're modifying LLVM, then I'd strongly recommend that you use CMake+Ninja. On a moderately fast machine, it takes less time for me to do an incremental build with ninja after modifying a few files in the MIPS back end than it takes to do an incremental build with the autoconf / make system after modifying no files. David
On 12 Jun 2014 05:31, "pratik dand" <pratikdand143 at gmail.com> wrote:> > Dear, > > I am currently working on one specific architecture. When I make changesand try to "make" it takes a very long time as It compiles all the files in the source.> > My question is since I am only editing a few files in the architecturedirectory and some files in include directory, Can I speed up my "make" by running "make" only for a few files? There is a way but DO NOT DO THIS! If make is rebuilding a lot of files then it is very likely it is necessary for them to be rebuilt and trying to circumvent this will lead to confusing problems. If you want things to go faster * Use the -jN flag with make to build in parallel where N is the maximum number of jobs run in parallel. E.g. $ make -j4 If that's not fast enough... * Use the CMake and Ninja as the build system rather than Autoconf/make $ cmake -G Ninja /path/to/llvm/source $ ninja Ninja runs in parallel by default and is non recursive. Still not fast enough? * If linking seems to be a bottleneck consider using the Gold linker instead. Still not fast enough? * Throw better or more hardware (distcc maybe?) at the problem. Dan. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140612/0f6ba18d/attachment.html>
Dan Liew wrote:> > > On 12 Jun 2014 05:31, "pratik dand" <pratikdand143 at gmail.com > <mailto:pratikdand143 at gmail.com>> wrote: > > > > Dear, > > > > I am currently working on one specific architecture. When I make > changes and try to "make" it takes a very long time as It compiles all > the files in the source. > > > > My question is since I am only editing a few files in the > architecture directory and some files in include directory, Can I > speed up my "make" by running "make" only for a few files? > > There is a way but DO NOT DO THIS! If make is rebuilding a lot of > files then it is very likely it is necessary for them to be rebuilt > and trying to circumvent this will lead to confusing problems. > > If you want things to go faster > > * Use the -jN flag with make to build in parallel where N is the > maximum number of jobs run in parallel. E.g. > > $ make -j4 >This could be critical if you have 4 or less GigaBytes of memory. If you run "make -j2" it makes sure that no swapping happens ... mostly :) --Armin> If that's not fast enough... > > * Use the CMake and Ninja as the build system rather than Autoconf/make > > $ cmake -G Ninja /path/to/llvm/source > $ ninja > > Ninja runs in parallel by default and is non recursive. > > Still not fast enough? > > * If linking seems to be a bottleneck consider using the Gold linker > instead. > > Still not fast enough? > > * Throw better or more hardware (distcc maybe?) at the problem. > > Dan. > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140612/d2583709/attachment.html>
Dear David, I am trying to do it with Cmake+Ninja. I was trying cmake -G ninja ../llvm/configure to configure. But this didn't work as the path specified wasnt a directory. My directory structure looks like this llvm - configure - rest build I want to build llvm in my build directory. Can you please help? Regards, Pratik On Thu, Jun 12, 2014 at 4:32 PM, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:> On 12 Jun 2014, at 04:58, pratik dand <pratikdand143 at gmail.com> wrote: > > > I am currently working on one specific architecture. When I make changes > and try to "make" it takes a very long time as It compiles all the files in > the source. > > > > My question is since I am only editing a few files in the architecture > directory and some files in include directory, Can I speed up my "make" by > running "make" only for a few files? > > Can such changes be accommodated in the MakeFiles to get the "make" done > quickly? > > If you're modifying LLVM, then I'd strongly recommend that you use > CMake+Ninja. On a moderately fast machine, it takes less time for me to do > an incremental build with ninja after modifying a few files in the MIPS > back end than it takes to do an incremental build with the autoconf / make > system after modifying no files. > > David >-- Pratik -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140613/e195ea08/attachment.html>